电工技术基础_电工基础知识_电工之家-电工学习网

欢迎来到电工学习网!

列举三菱PLC编程软件GX Works2的几个坑爹BUG

2021-08-18 03:09分类:三菱PLC 阅读:

  三菱plc在中国自动化技术领域应用十分普遍,做为經典的日系工控产品知名品牌之一,他交给我的印像是简易、功能强大、划算(对比欧美国家商品),并且数控编程软件也由原先的GX Developer发布了更强劲的GX Works2和GX Works3,除开基本上的子程序简易工程项目外还适用ST,FBD,SFC等程序设计语言结构化编程,可是很有可能因为时间较短或是别的缘故,在运用这种程序设计语言时却有许多 令人伤脑的BUG,下边就例举一些自己发觉的BUG和不够,让大伙儿事半功倍。
声明数组起止数不以0时会错误
在标签页中声明数组标识时,启用二维数组设置总数n后,会默认设置申明成[0..n-1],比如申明10个word二维数组:


可是基本数据类型中的(0..9)是能够编写的,我们可以改成(1..10):


变更以后程序编写、编译程序、免费下载、运作也没有出错,可是他会发生一个致命性的bug:二维数组中某一数据信息取值有误或没法取值!是否很怪异, 可是这一不正确并不是一定发生的,仅有在很多应用繁杂程序编写的情况下才有可能发生,之前新项目中发生一次我找了一整天才发觉缘故!另附那时候的出现异常相片:


图上程序流程是将bit二维数组Done(1..7)赋给七个bit自变量,可是Done[6]的值却没法传送给别的自变量,处理这个问题的方式 便是将全部二维数组的起止号都改成0,即便0用不上,空着消耗也需要申明出去。
for循环下结构体数组双层嵌入会错误
在我的蜘蛛纸牌视頻中(三菱plc撰写《蜘蛛纸牌》),有一段程序流程就遇到了这个问题,如下图:


在这里段程序中我将二维数组 iDownNumb[ii] 传送给 jj ,又将 jj 载入建筑结构的原素二维数组BEHIND_LINE[ii].Numb[jj] 中,我为何要那么写呢?我能立即写出BEHIND_LINE[ii].Numb[iDownNumb[ii]] 的啊,为何要用个 jj 自变量呢?缘故是假如省去jj 将二维数组自变量立即载入建筑结构原素二维数组中,那麼这一FOR循环系统实行后 BEHIND_LINE[ii].Numb中赋的值就有误,跟等于号后边的二维数组自变量pageList里边的值彻底没有关系,我那时候由于这一状况一度猜疑我是不是哪儿写错了看不出,脑壳秀逗了?弄了大半天才发觉存在的问题,大伙儿之后假如碰到相近的难题,先不必猜疑自身,有可能是手机软件较为坑人,处理的方法就如上图所述所显示,自变量不必嵌入太双层,常用点中间变量来过多一下。
长期编写程序流程手机软件会奔溃
这个问题最坑人了,写了大半天的程序流程,总算写的差不多了想点一下编译程序,看一下是否有不正确,結果手机软件卡住崩溃了,关键是都还没全自动储存,只有眼巴巴的看你千辛万苦写了大半天的程序流程变为浅灰,看见那转着圆圈的电脑鼠标和弹出来的不正确弹出框,绝情的点一下“结束进程”。那时候的情绪便是:待机不干了。。。


因此 在应用GX Works2时一定要培养顺手点储存的良好的习惯,假如你确实忘记了储存且手机软件奔溃得话,还记得立即给表明出去的程序流程照一张照片,能救一点是一点。
手机软件奔溃的情况下还很有可能造成 体系文件损伤,这一就更可怜了,例如在网上这个人:


储存时关闭电源造成 全部程序流程无法打开,几日的活白做了了,这就太严厉打击人了,因此 关键的新项目程序流程不但要“储存”还需要“另存”。
加上注解时程序流程会变“绿”
坚信使用过三菱ST的都遇到过这个问题吧,如果你写注解,便会大概率产生这个问题 :


或是刚刚的蜘蛛纸牌中的程序流程,我只是在赋值语句后边提升一段注解,加了一行空白行,程序流程的一部分标识就变成了与注解同样的翠绿色,这一翠绿色假如仅仅发生在标识上危害还不很大,假如发生在基本上命令或是作用涵数上,很可能编译程序会出错。
一开始应用GX Works的人很有可能会手足无措,但处理的方法非常简单,点一下储存按键,色调便会恢复过来了,假如你悲剧的碰到了不可以编译程序的状况,你还需要寻找变色的命令,储存后在后面敲打空格符,或是再次键入才可以处理。
低版的软件应用ModbusTCP控制模块出错
ModbusTCP用的人很有可能并不是许多,三菱的PLC必须智能化控制模块适用,这一控制模块卖的偏贵并且交货期也长,在网上材料也少,在应用这一控制模块时依照指南一步步配备,给400一遍遍通电话了解,但编译程序的情况下一直出错,之后问了许多优秀人才锁住难题出在软件版本上而不是设定上,那时候三菱官网免费下载的汉语最大版本号依然不可以解决困难,之后在网上各种各样找、给每个三菱经销商通电话寻找一个英语版的才功能强大,如今我就用的是V1.555D汉化版也可以一切正常应用这一控制模块了,免费下载运作后控制模块的警报灯依然会闪,可是不危害应用了。


下边说说三菱PLC在ST语言表达下的一些不够:
只有申明一维数组
三菱PLC只有申明一维数组,这对软件程序员而言拥有非常大的限定。像西门子PLC、倍福、德力西全是能够申明多维数组的:


图中是门子博图软件申明的一个三维int二维数组,假如三菱适用这一作用,上边蜘蛛纸牌的程序流程中BEHIND_LINE[ii].Numb[jj]就无须写出建筑结构 二维数组的方式,立即写出一个二维数组BEHIND_LINE[ii,jj] 就可以了。
只有创建一层建筑结构
在三菱的建筑结构中只有申明基本上种类的标识,没法申明别的的建筑结构,这也终究了三菱不可以像德力西和西门子PLC那般进行繁杂的逻辑性作用。看一下西门子PLC的双层建筑结构:


启用后是那样的:


有什么作用呢?给大伙儿看一下大家智能机器人自动控制系统的静态变量:


ROBOT建筑结构做为智能机器人关键管理程序的插口,全部的设定、情况和指令等所有包括在其中,图上展现的仅仅在其中的好多个主要参数。
计算能力中基本数据类型没法全自动变换
例如三菱的加法运算,大家把减号“ ”用电脑鼠标拖进程序流程中,看他适用的基本数据类型:


图上表明,加法运算适用随意种类的数据量 随意种类的数据量;那大家立即写“1 1.2”能不能呢?
编译程序后表明出错,提醒基本数据类型不一致,也就是“ ”的前后左右务必是同样的种类,由于1是整形美容,1.2是浮点型,假如要想开展上边的计算,务必将1写出1.0才行。真是蛮不讲理啊!
word种类标识不兼容按位寻址方式
三菱的內部软元器件D是能够按位应用的,例如D0.0表明字软元器件D0的第 0 位,能够作为开关量来应用。可是假如你申明一个word种类的标识,也是16位的基本数据类型,并且PLC会把他全自动分派给D软元器件缓存文件,但他却不兼容按位应用,例如申明varTemp:word;程序流程varTemp.0:=true会出错:


能够见到varTemp.0没法分析,不清楚它是为什么。。。
别的
三菱也有一些别的的难题,例如ST程序编写不兼容断点调试实行、程序流程中断点等作用,你们还遇到过什么难题呢?

上一篇:西门子PLC的“ModbusRTU通讯”和“轮询”

下一篇:三菱FX3U PLC与三菱变频器多从站通信

相关推荐

电工推荐

    电工技术基础_电工基础知识_电工之家-电工学习网
返回顶部