电工进修网

 找回暗码
 急速注册
电工进修网 电工进修网 技巧文库 plc 三菱plc 检查内容

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

2019-11-6 12:10| 来源:电工进修网| 检查: 831| 评论: 0|来自: PLC法式榜样猿

摘要: 三菱PLC在国际主动化行业应用异常广泛,作为经典的日系工控产品品牌之一,他留给我的印象是简单、好用、便宜(比拟欧美产品),并且编程软件也由本来的GX Developer推出了更强大年夜的GX Works2和GX Works3,除根本的 ...
三菱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)赋给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一遍遍打德律风询问,但编译的时辰一向报错,后来问了很多人才网job.vhao.net锁定成绩出在软件版本上而不是设置上,当时三菱官网下载的中文最高版本依然不克不及处理成绩,后来网上各类找、给各个三菱供给商打德律风找到一个英文版的才好用,如今我用的是V1.555D中文版也能够或许正常应用这个模块了,下载运转后模块的报警灯依然会闪,然则不影照应用了。


下面说说三菱PLC在ST说话下的一些缺乏:
只能声明一维数组
三菱PLC只能声明一维数组,这对编程人员来讲有了很大年夜的限制。像西门子、倍福、施耐德都是可以声明多维数组的:


上图是门子博图软件声明的一个三维int数组,假设三菱支撑这个功能,下面蜘蛛纸牌的法式榜样中BEHIND_LINE[ii].Numb[jj]就不用写成构造体+数组的情势,直接写成一个二维数组BEHIND_LINE[ii,jj] 便可以了。
只能建立一层构造体
在三菱的构造体中只能声明根本类型的标签,没法声明其他的构造体,这也注定了三菱不克不及像施耐德和西门子那样完成复杂的逻辑功能。看一下西门子的多层构造体:


调用后是如许的:


有甚么用呢?给大年夜家看一下我们机械人控制体系的部分变量:


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编程软件GX Works2的几个坑爹BUG》的人还看了以下文章:

最新评论

热点文章

|电工进修网 ( )

GMT+8, 2019-11-19 09:11

Powered by © 2011-2019 rusdir.com 版权一切 免责声明 不良信息告发

技巧驱动将来! 电工进修网—专业电工基本知识电工技巧进修网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

前往顶部