tft每日頭條

 > 科技

 > 三菱plc編程軟件works2和3怎麼用

三菱plc編程軟件works2和3怎麼用

科技 更新时间:2024-11-23 22:28:06

三菱PLC在國内自動化行業使用非常廣泛,作為經典的日系工控産品品牌之一,他留給我的印象是簡單、好用、便宜(相比歐美産品),而且編程軟件也由原來的GX Developer推出了更強大的GX Works2和GX Works3,除了基本的梯形圖簡單工程外還支持ST,FBD,SFC等高級語言結構化編程,但是可能由于時間短或者其他原因,在應用這些高級語言時卻有不少讓人抓狂的BUG,下面就列舉一些本人發現的BUG和不足,讓大家少走彎路。

聲明數組起始數不為0時會出錯

在标簽頁中聲明數組标簽時,勾選數組設定數量n後,會默認聲明成[0..n-1],例如聲明10個word數組:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)1

但是數據類型中的(0..9)是可以編輯的,我們可以改為(1..10):

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)2

更改之後編程、編譯、下載、運行都沒有報錯,但是他會出現一個緻命的bug:數組中某個數據賦值不正确或無法賦值!是不是很詭異, 但是這個錯誤不是一定出現的,隻有在大量使用複雜編程的時候才有可能出現,以前項目中出現一次我找了一整天才發現原因!附上當時的異常照片:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)3

圖中程序是将bit數組Done(1..7)賦給7個bit變量,但是Done[6]的值卻無法傳遞給其他變量,解決這個問題的方法就是将所有數組的起始号都改為0,即使0用不到,空着浪費也要聲明出來。

for循環下結構體數組多層嵌套會出錯

在我的蜘蛛紙牌視頻中(三菱PLC編寫《蜘蛛紙牌》),有一段程序就碰到了這個問題,如下圖:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)4

在這段程序中我将數組 iDownNumb[ii] 傳遞給 jj ,又将 jj 寫入結構體的元素數組 BEHIND_LINE[ii].Numb[jj] 中,我為什麼要這麼寫呢?我可以直接寫成 BEHIND_LINE[ii].Numb[iDownNumb[ii]] 的啊,為什麼要用個 jj 變量呢?原因是如果我省略 jj 将數組變量直接寫入結構體元素數組中,那麼這個FOR循環執行後 BEHIND_LINE[ii].Numb中賦的值就不正确,跟等号後面的數組變量pageList裡面的值完全沒有關系,我當時因為這個情況一度懷疑我是不是哪裡寫錯了看不出來,腦袋秀逗了?弄了半天才發現問題所在,大家以後如果遇到類似的問題,先不要懷疑自己,有可能是軟件比較坑爹,解決的辦法就如上圖所示,變量不要嵌套太多層,多用點中間變量來過度一下。

長時間編輯程序軟件會崩潰

這個問題最坑爹了,寫了半天的程序,終于寫的差不多了想點一下編譯,看看有沒有錯誤,結果軟件卡死崩潰了,關鍵是還沒有自動保存,隻能眼睜睜的看着你好不容易寫了半天的程序變成淺灰色,看着那轉着圈圈的鼠标和彈出的錯誤提示框,狠心的點下“關閉程序”。當時的心情就是:關機不幹了。。。

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)5

所以在使用GX Works2時一定要養成随手點保存的良好習慣,如果你真的忘了保存且軟件崩潰的話,記得及時給顯示出來的程序照一張照片,能救一點是一點。

軟件崩潰的時候還可能導緻程序文件受損,這個就更慘了,比如網上這個人:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)6

保存時斷電導緻整個程序打不開,幾天的活白幹了,這就太打擊人了,所以重要的項目程序不僅要“保存”還要“另存”。

添加注釋時程序會變“綠”

相信用過三菱ST的都遇到過這個問題吧,隻要你寫注釋,就會大概率發生這個問題

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)7

還是剛才的蜘蛛紙牌中的程序,我隻是在賦值語句後面增加一段注釋,加了一行空行,程序的部分标簽就變為了與注釋相同的綠色,這個綠色如果隻是出現在标簽上影響還不太大,如果出現在基本指令或者功能函數上,很可能編譯會報錯。

剛開始使用GX Works的人可能會不知所措,但解決的辦法很簡單,點擊保存按鈕,顔色就會恢複正常了,如果你不幸的遇到了不能編譯的情況,你還要找到變綠的指令,保存後在後面敲擊空格,或者重新輸入才能解決。

低版本的軟件使用ModbusTCP模塊報錯

ModbusTCP用的人可能不是很多,三菱的PLC需要智能模塊支持,這個模塊賣的很貴而且貨期也長,網上資料也少,在使用這個模塊時按照手冊一步步配置,給400一遍遍打電話詢問,但編譯的時候一直報錯,後來問了很多人才鎖定問題出在軟件版本上而不是設置上,當時三菱官網下載的中文最高版本仍然不能解決問題,後來網上各種找、給各個三菱供應商打電話找到一個英文版的才好用,現在我用的是V1.555D中文版也能夠正常使用這個模塊了,下載運行後模塊的報警燈仍然會閃,但是不影響使用了。


下面說說三菱PLC在ST語言下的一些不足:

隻能聲明一維數組

三菱PLC隻能聲明一維數組,這對編程人員來說有了很大的限制。像西門子、倍福、施耐德都是可以聲明多維數組的:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)8

上圖是西門子博圖軟件聲明的一個三維int數組,如果三菱支持這個功能,上面蜘蛛紙牌的程序中BEHIND_LINE[ii].Numb[jj]就不必寫成結構體 數組的形式,直接寫成一個二維數組BEHIND_LINE[ii,jj] 就可以了。

隻能建立一層結構體

在三菱的結構體中隻能聲明基本類型的标簽,無法聲明其他的結構體,這也注定了三菱不能像施耐德和西門子那樣完成複雜的邏輯功能。看一下西門子的多層結構體:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)9

調用後是這樣的:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)10

有什麼用呢?給大家看一下我們機器人控制系統的局部變量:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)11

ROBOT結構體作為機器人核心控制程序的接口,所有的設置、狀态和命令等全部包含其中,圖中展示的隻是其中的幾個參數。

數學計算中數據類型無法自動轉換

比如三菱的加法運算,我們把加号“ ”用鼠标拖入程序中,看他支持的數據類型:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)12

圖中顯示,加法運算支持任意類型的數字量 任意類型的數字量;那我們直接寫“1 1.2”可不可以呢?

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)13

編譯後顯示報錯,提示數據類型不一緻,也就是“ ”的前後必須是相同的類型,因為1是整形,1.2是浮點型,如果想要進行上面的運算,必須将1寫成1.0才行。簡直不可理喻啊!

word類型标簽不支持按位尋址

三菱的内部軟元件D是可以按位使用的,比如D0.0表示字軟元件D0的第 0 位,可以當作開關量來使用。但是如果你聲明一個word類型的标簽,也是16位的數據類型,而且PLC會把他自動分配給D軟元件緩存,但他卻不支持按位使用,比如聲明varTemp:word;程序varTemp.0:=true會報錯:

三菱plc編程軟件works2和3怎麼用(列舉三菱PLC編程軟件GX)14

可以看到varTemp.0無法解析,不知道這是為啥。。。

其他

三菱還有一些其他的問題,比如ST編程不支持單步執行、程序斷點等功能,你們還遇到過哪些問題呢?

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved