列舉三菱PLC編程軟件GX Works2的幾個(gè)坑爹BUG

發(fā)布時(shí)間:2024-03-04
三菱plc在國內(nèi)自動(dòng)化行業(yè)使用非常廣泛,作為經(jīng)典的日系工控產(chǎn)品品牌之一,他留給我的印象是簡單、好用、便宜(相比歐美產(chǎn)品),而且編程軟件也由原來的gx developer推出了更強(qiáng)大的gx works2和gx works3,除了基本的梯形圖簡單工程外還支持st,fbd,sfc等高級語言結(jié)構(gòu)化編程,但是可能由于時(shí)間短或者其他原因,在應(yīng)用這些高級語言時(shí)卻有不少讓人抓狂的bug,下面就列舉一些本人發(fā)現(xiàn)的bug和不足,讓大家少走彎路。
聲明數(shù)組起始數(shù)不為0時(shí)會(huì)出錯(cuò)
在標(biāo)簽頁中聲明數(shù)組標(biāo)簽時(shí),勾選數(shù)組設(shè)定數(shù)量n后,會(huì)默認(rèn)聲明成[0..n-1],例如聲明10個(gè)word數(shù)組:
但是數(shù)據(jù)類型中的(0..9)是可以編輯的,我們可以改為(1..10):
更改之后編程、編譯、下載、運(yùn)行都沒有報(bào)錯(cuò),但是他會(huì)出現(xiàn)一個(gè)致命的bug:數(shù)組中某個(gè)數(shù)據(jù)賦值不正確或無法賦值!是不是很詭異, 但是這個(gè)錯(cuò)誤不是一定出現(xiàn)的,只有在大量使用復(fù)雜編程的時(shí)候才有可能出現(xiàn),以前項(xiàng)目中出現(xiàn)一次我找了一整天才發(fā)現(xiàn)原因!附上當(dāng)時(shí)的異常照片:
圖中程序是將bit數(shù)組done(1..7)賦給7個(gè)bit變量,但是done[6]的值卻無法傳遞給其他變量,解決這個(gè)問題的方法就是將所有數(shù)組的起始號都改為0,即使0用不到,空著浪費(fèi)也要聲明出來。
for循環(huán)下結(jié)構(gòu)體數(shù)組多層嵌套會(huì)出錯(cuò)
在我的蜘蛛紙牌視頻中(三菱plc編寫《蜘蛛紙牌》),有一段程序就碰到了這個(gè)問題,如下圖:
在這段程序中我將數(shù)組 idownnumb[ii] 傳遞給 jj ,又將 jj 寫入結(jié)構(gòu)體的元素?cái)?shù)組behind_line[ii].numb[jj] 中,我為什么要這么寫呢?我可以直接寫成behind_line[ii].numb[idownnumb[ii]] 的啊,為什么要用個(gè) jj 變量呢?原因是如果我省略jj 將數(shù)組變量直接寫入結(jié)構(gòu)體元素?cái)?shù)組中,那么這個(gè)for循環(huán)執(zhí)行后 behind_line[ii].numb中賦的值就不正確,跟等號后面的數(shù)組變量pagelist里面的值完全沒有關(guān)系,我當(dāng)時(shí)因?yàn)檫@個(gè)情況一度懷疑我是不是哪里寫錯(cuò)了看不出來,腦袋秀逗了?弄了半天才發(fā)現(xiàn)問題所在,大家以后如果遇到類似的問題,先不要懷疑自己,有可能是軟件比較坑爹,解決的辦法就如上圖所示,變量不要嵌套太多層,多用點(diǎn)中間變量來過度一下。
長時(shí)間編輯程序軟件會(huì)崩潰
這個(gè)問題最坑爹了,寫了半天的程序,終于寫的差不多了想點(diǎn)一下編譯,看看有沒有錯(cuò)誤,結(jié)果軟件卡死崩潰了,關(guān)鍵是還沒有自動(dòng)保存,只能眼睜睜的看著你好不容易寫了半天的程序變成淺灰色,看著那轉(zhuǎn)著圈圈的鼠標(biāo)和彈出的錯(cuò)誤提示框,狠心的點(diǎn)下“關(guān)閉程序”。當(dāng)時(shí)的心情就是:關(guān)機(jī)不干了。。。
所以在使用gx works2時(shí)一定要養(yǎng)成隨手點(diǎn)保存的良好習(xí)慣,如果你真的忘了保存且軟件崩潰的話,記得及時(shí)給顯示出來的程序照一張照片,能救一點(diǎn)是一點(diǎn)。
軟件崩潰的時(shí)候還可能導(dǎo)致程序文件受損,這個(gè)就更慘了,比如網(wǎng)上這個(gè)人:
保存時(shí)斷電導(dǎo)致整個(gè)程序打不開,幾天的活白干了,這就太打擊人了,所以重要的項(xiàng)目程序不僅要“保存”還要“另存”。
添加注釋時(shí)程序會(huì)變“綠”
相信用過三菱st的都遇到過這個(gè)問題吧,只要你寫注釋,就會(huì)大概率發(fā)生這個(gè)問題 :
還是剛才的蜘蛛紙牌中的程序,我只是在賦值語句后面增加一段注釋,加了一行空行,程序的部分標(biāo)簽就變?yōu)榱伺c注釋相同的綠色,這個(gè)綠色如果只是出現(xiàn)在標(biāo)簽上影響還不太大,如果出現(xiàn)在基本指令或者功能函數(shù)上,很可能編譯會(huì)報(bào)錯(cuò)。
剛開始使用gx works的人可能會(huì)不知所措,但解決的辦法很簡單,點(diǎn)擊保存按鈕,顏色就會(huì)恢復(fù)正常了,如果你不幸的遇到了不能編譯的情況,你還要找到變綠的指令,保存后在后面敲擊空格,或者重新輸入才能解決。
低版本的軟件使用modbustcp模塊報(bào)錯(cuò)
modbustcp用的人可能不是很多,三菱的plc需要智能模塊支持,這個(gè)模塊賣的很貴而且貨期也長,網(wǎng)上資料也少,在使用這個(gè)模塊時(shí)按照手冊一步步配置,給400一遍遍打電話詢問,但編譯的時(shí)候一直報(bào)錯(cuò),后來問了很多人才鎖定問題出在軟件版本上而不是設(shè)置上,當(dāng)時(shí)三菱官網(wǎng)下載的中文最高版本仍然不能解決問題,后來網(wǎng)上各種找、給各個(gè)三菱供應(yīng)商打電話找到一個(gè)英文版的才好用,現(xiàn)在我用的是v1.555d中文版也能夠正常使用這個(gè)模塊了,下載運(yùn)行后模塊的報(bào)警燈仍然會(huì)閃,但是不影響使用了。
下面說說三菱plc在st語言下的一些不足:
只能聲明一維數(shù)組
三菱plc只能聲明一維數(shù)組,這對編程人員來說有了很大的限制。像西門子、倍福、施耐德都是可以聲明多維數(shù)組的:
上圖是門子博圖軟件聲明的一個(gè)三維int數(shù)組,如果三菱支持這個(gè)功能,上面蜘蛛紙牌的程序中behind_line[ii].numb[jj]就不必寫成結(jié)構(gòu)體+數(shù)組的形式,直接寫成一個(gè)二維數(shù)組behind_line[ii,jj] 就可以了。
只能建立一層結(jié)構(gòu)體
在三菱的結(jié)構(gòu)體中只能聲明基本類型的標(biāo)簽,無法聲明其他的結(jié)構(gòu)體,這也注定了三菱不能像施耐德和西門子那樣完成復(fù)雜的邏輯功能??匆幌挛鏖T子的多層結(jié)構(gòu)體:
調(diào)用后是這樣的:
有什么用呢?給大家看一下我們機(jī)器人控制系統(tǒng)的局部變量:
robot結(jié)構(gòu)體作為機(jī)器人核心控制程序的接口,所有的設(shè)置、狀態(tài)和命令等全部包含其中,圖中展示的只是其中的幾個(gè)參數(shù)。
數(shù)學(xué)計(jì)算中數(shù)據(jù)類型無法自動(dòng)轉(zhuǎn)換
比如三菱的加法運(yùn)算,我們把加號“+”用鼠標(biāo)拖入程序中,看他支持的數(shù)據(jù)類型:
圖中顯示,加法運(yùn)算支持任意類型的數(shù)字量+任意類型的數(shù)字量;那我們直接寫“1+1.2”可不可以呢?
編譯后顯示報(bào)錯(cuò),提示數(shù)據(jù)類型不一致,也就是“+”的前后必須是相同的類型,因?yàn)?是整形,1.2是浮點(diǎn)型,如果想要進(jìn)行上面的運(yùn)算,必須將1寫成1.0才行。簡直不可理喻?。?br>word類型標(biāo)簽不支持按位尋址
三菱的內(nèi)部軟元件d是可以按位使用的,比如d0.0表示字軟元件d0的第 0 位,可以當(dāng)作開關(guān)量來使用。但是如果你聲明一個(gè)word類型的標(biāo)簽,也是16位的數(shù)據(jù)類型,而且plc會(huì)把他自動(dòng)分配給d軟元件緩存,但他卻不支持按位使用,比如聲明vartemp:word;程序vartemp.0:=true會(huì)報(bào)錯(cuò):
可以看到vartemp.0無法解析,不知道這是為啥。。。
其他
三菱還有一些其他的問題,比如st編程不支持單步執(zhí)行、程序斷點(diǎn)等功能,你們還遇到過哪些問題呢?
上一個(gè):傳感器的靈敏度、低頻噪聲特性和動(dòng)態(tài)響應(yīng)范圍-
下一個(gè):網(wǎng)盤分享顯示有違規(guī)內(nèi)容打不開(網(wǎng)盤分享顯示有違規(guī)內(nèi)容怎么分享貼吧)

濕式報(bào)警閥安裝要求有哪些?
電腦兩個(gè)顯示器如何設(shè)置(臺式電腦設(shè)置兩個(gè)顯示器)
rickmeier德國原裝進(jìn)口泵(讓您的生產(chǎn)線更高效穩(wěn)定)
阿里云服務(wù)器費(fèi)用加計(jì)扣除比例
單相電機(jī)電容接線圖_單相電機(jī)正反轉(zhuǎn)實(shí)物接線圖集_單相電機(jī)正反轉(zhuǎn)原理圖解
山水盆景的植物材料和配植怎樣選擇
特調(diào)風(fēng)味茶
網(wǎng)絡(luò)安全工程師證書報(bào)考條件,網(wǎng)絡(luò)安全工程師考試報(bào)考條件 知道的幫幫忙
怎么打開蘋果7手機(jī),撿了個(gè)蘋果7怎么解鎖
充值沒成功-市場咨詢
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos