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

时间:2023-03-04作者:佚名
三菱plc在国内自动化行业使用非常广泛,作为经典的日系工控产品品牌之一,他留给我的印象是简单、好用、便宜(相比欧美产品),而且编程软件也由原来的GX Developer推出了更强大的GX Works2和GX Works3,除了基本的梯形图简单工程外还支持ST,FBD,SFC等高级语言结构化编程,但是可能由于时间短或者其他原因,在应用这些高级语言时却有不少让人抓狂的BUG,下面就列举一些本人发现的BUG和不足,让大家少走弯路。
声明数组起始数不为0时会出错
在标签页中声明数组标签时,勾选数组设定数量n后,会默认声明成[0..n-1],例如声明10个word数组:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
但是数据类型中的(0..9)是可以编辑的,我们可以改为(1..10):

列举三菱PLC编程软件GX Works2的几个坑爹BUG
更改之后编程、编译、下载、运行都没有报错,但是他会出现一个致命的bug:数组中某个数据赋值不正确或无法赋值!是不是很诡异, 但是这个错误不是一定出现的,只有在大量使用复杂编程的时候才有可能出现,以前项目中出现一次我找了一整天才发现原因!附上当时的异常照片:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
图中程序是将bit数组Done(1..7)赋给7个bit变量,但是Done[6]的值却无法传递给其他变量,解决这个问题的方法就是将所有数组的起始号都改为0,即使0用不到,空着浪费也要声明出来。
for循环下结构体数组多层嵌套会出错
在我的蜘蛛纸牌视频中(三菱plc编写《蜘蛛纸牌》),有一段程序就碰到了这个问题,如下图:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
在这段程序中我将数组 iDownNumb[ii] 传递给 jj ,又将 jj 写入结构体的元素数组BEHIND_LINE[ii].Numb[jj] 中,我为什么要这么写呢?我可以直接写成BEHIND_LINE[ii].Numb[iDownNumb[ii]] 的啊,为什么要用个 jj 变量呢?原因是如果我省略jj 将数组变量直接写入结构体元素数组中,那么这个FOR循环执行后 BEHIND_LINE[ii].Numb中赋的值就不正确,跟等号后面的数组变量pageList里面的值完全没有关系,我当时因为这个情况一度怀疑我是不是哪里写错了看不出来,脑袋秀逗了?弄了半天才发现问题所在,大家以后如果遇到类似的问题,先不要怀疑自己,有可能是软件比较坑爹,解决的办法就如上图所示,变量不要嵌套太多层,多用点中间变量来过度一下。
长时间编辑程序软件会崩溃
这个问题最坑爹了,写了半天的程序,终于写的差不多了想点一下编译,看看有没有错误,结果软件卡死崩溃了,关键是还没有自动保存,只能眼睁睁的看着你好不容易写了半天的程序变成浅灰色,看着那转着圈圈的鼠标和弹出的错误提示框,狠心的点下“关闭程序”。当时的心情就是:关机不干了。。。

列举三菱PLC编程软件GX Works2的几个坑爹BUG
所以在使用GX Works2时一定要养成随手点保存的良好习惯,如果你真的忘了保存且软件崩溃的话,记得及时给显示出来的程序照一张照片,能救一点是一点。
软件崩溃的时候还可能导致程序文件受损,这个就更惨了,比如网上这个人:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
保存时断电导致整个程序打不开,几天的活白干了,这就太打击人了,所以重要的项目程序不仅要“保存”还要“另存”。
添加注释时程序会变“绿”
相信用过三菱ST的都遇到过这个问题吧,只要你写注释,就会大概率发生这个问题 :

列举三菱PLC编程软件GX Works2的几个坑爹BUG
还是刚才的蜘蛛纸牌中的程序,我只是在赋值语句后面增加一段注释,加了一行空行,程序的部分标签就变为了与注释相同的绿色,这个绿色如果只是出现在标签上影响还不太大,如果出现在基本指令或者功能函数上,很可能编译会报错。
刚开始使用GX Works的人可能会不知所措,但解决的办法很简单,点击保存按钮,颜色就会恢复正常了,如果你不幸的遇到了不能编译的情况,你还要找到变绿的指令,保存后在后面敲击空格,或者重新输入才能解决。
低版本的软件使用ModbusTCP模块报错
ModbusTCP用的人可能不是很多,三菱的PLC需要智能模块支持,这个模块卖的很贵而且货期也长,网上资料也少,在使用这个模块时按照手册一步步配置,给400一遍遍打电话询问,但编译的时候一直报错,后来问了很多人才锁定问题出在软件版本上而不是设置上,当时三菱官网下载的中文最高版本仍然不能解决问题,后来网上各种找、给各个三菱供应商打电话找到一个英文版的才好用,现在我用的是V1.555D中文版也能够正常使用这个模块了,下载运行后模块的报警灯仍然会闪,但是不影响使用了。

列举三菱PLC编程软件GX Works2的几个坑爹BUG
下面说说三菱PLC在ST语言下的一些不足:
只能声明一维数组
三菱PLC只能声明一维数组,这对编程人员来说有了很大的限制。像西门子、倍福、施耐德都是可以声明多维数组的:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
上图是门子博图软件声明的一个三维int数组,如果三菱支持这个功能,上面蜘蛛纸牌的程序中BEHIND_LINE[ii].Numb[jj]就不必写成结构体 数组的形式,直接写成一个二维数组BEHIND_LINE[ii,jj] 就可以了。
只能建立一层结构体
在三菱的结构体中只能声明基本类型的标签,无法声明其他的结构体,这也注定了三菱不能像施耐德和西门子那样完成复杂的逻辑功能。看一下西门子的多层结构体:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
调用后是这样的:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
有什么用呢?给大家看一下我们机器人控制系统的局部变量:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
ROBOT结构体作为机器人核心控制程序的接口,所有的设置、状态和命令等全部包含其中,图中展示的只是其中的几个参数。
数学计算中数据类型无法自动转换
比如三菱的加法运算,我们把加号“ ”用鼠标拖入程序中,看他支持的数据类型:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
图中显示,加法运算支持任意类型的数字量 任意类型的数字量;那我们直接写“1 1.2”可不可以呢?
编译后显示报错,提示数据类型不一致,也就是“ ”的前后必须是相同的类型,因为1是整形,1.2是浮点型,如果想要进行上面的运算,必须将1写成1.0才行。简直不可理喻啊!
word类型标签不支持按位寻址
三菱的内部软元件D是可以按位使用的,比如D0.0表示字软元件D0的第 0 位,可以当作开关量来使用。但是如果你声明一个word类型的标签,也是16位的数据类型,而且PLC会把他自动分配给D软元件缓存,但他却不支持按位使用,比如声明varTemp:word;程序varTemp.0:=true会报错:

列举三菱PLC编程软件GX Works2的几个坑爹BUG
可以看到varTemp.0无法解析,不知道这是为啥。。。
其他
三菱还有一些其他的问题,比如ST编程不支持单步执行、程序断点等功能,你们还遇到过哪些问题呢?

相关阅读

二极管的正负极怎么区分

二极管是电子电路中最常见的一种元件,二极管的种类也很多,怎么区分二极管的好坏呢?普通二极管管体上都有一个银色环,而有银色环的一端为负极,另一端就是正极了。 整流二极...
2023-04-03
二极管的正负极怎么区分

电路图的基本特征和主要用途

1、电路图 :用图形符号并按工作顺序排列,详细表示电路、设备或成套装置的全部基本组成的连接关系,而不考虑其实际位置的简图。 2、图例 此电路图说明压缩机、M1和风机电动机...
2023-03-21
电路图的基本特征和主要用途

暗藏家中,“电费刺客” 居然是它!

电费是生活中不可或缺的费用 随着家电设备的增加 电费也在蹭蹭蹭上涨 收到账单时,心都快碎了! 哪些家电用了这么多电? 为了给大家减少经济负担 找出“电费刺客”,及时“止损...
2023-06-11
暗藏家中,“电费刺客” 居然是它!

国产贴片电容和日系贴片电容的差别

贴片电容和贴片电阻是电子行业的黄金配角,随着近两年电子行业的飞速发展,贴片电容电阻市场也异常火爆,从去年年底日本贴片电容厂家村田宣布退出常规贴片电容市场之后,国内...
2023-03-31
国产贴片电容和日系贴片电容的差别

电工保命守则:必须立刻戒掉的10个坏习惯,别拿生命赌侥幸

电工作业是高危工种,每一次操作都与生命安全、设备稳定紧密相连。在日常作业中,很多看似不起眼的“小习惯”,实则是埋下安全隐患的“定时炸弹”,轻则导致设...
2026-04-28

热销商品

连发瓦斯枪通用瓦斯射钉钢钉枪瓦斯气体高强度瓦斯射钉枪165气罐

连发瓦斯枪是一款专为高强度瓦斯射钉设计的工具,其特点在于能够连续发射瓦斯气体,适用于多种需要快速穿透和固定材料的场景。这款瓦斯枪配备了165气罐,容量足够满足...
4.5

黄铜镀镍金属电缆防水接头EWM密封格兰头HSM电线固定填料函M20M16

黄铜镀镍金属电缆防水接头EWM密封格兰头(HSM型)是一款高性能电线固定与密封装置,适用于M16和M20螺纹规格。采用优质黄铜材质并表面镀镍处理,具备优异的防腐蚀性、机械...
1.14

消防配件二氧化碳灭火器2 3 5 7KG弯头喷管24Kg干冰CO2外喷头喷嘴

二氧化碳灭火器配件中的2357KG弯头喷管与24Kg干冰CO₂外喷头喷嘴,是专业消防设备的重要组成部分。该弯头喷管采用高强度耐腐蚀材料制造,连接灵活,适用于高压CO₂灭火...
4.5

雷士照明led筒灯孔灯客厅吊顶天花灯嵌入式过道筒灯射灯桶灯家用

雷士照明LED筒灯是一款专为现代家居设计的嵌入式照明产品,适用于客厅、吊顶、过道、卧室等空间。采用高品质LED光源,光线柔和均匀,显色指数高,有效还原真实色彩,营造舒...
5.78

雷士照明嵌入式防眩筒灯射灯窄边过道灯深杯客厅无主灯天花灯米雪

雷士照明嵌入式防眩筒灯射灯——“米雪”系列,专为现代无主灯设计打造。采用窄边深杯结构,有效控制杂散光,实现精准防眩,营造舒适柔和的光环境。适用于客厅、过道、天...
25.67

网站栏目