最近我在改造一臺機器,原來的PLC是FX2N的,上面用了一個232的BD板,因為現(xiàn)在客戶要求要通過和上位機進行數(shù)據(jù)的監(jiān)控處理,所以我們決定先把FX2N的PLC換成FX3U的PLC,然后再加上一個串口模塊來進行和上位機電腦的數(shù)據(jù)通訊。值得慶幸的是,PLC程序轉(zhuǎn)換過來以后,基本上都是通用的,包括232BD板上面的通信程序,也就是說,程序直接轉(zhuǎn)換過來一模一樣,不需要改任何程序。
然后,就是開始動串口通訊的那個問題了,我們選用了一個FX3U-232-ADP的模塊,這個從型號上就可以看出來,采用的是232通訊,然后我也按照三菱編程手冊,三菱FX通訊手冊來進行編程,其中因為源程序已經(jīng)用到了RS指令,所以,要再加一個通訊模塊的話,不能再次使用同一個指令,必須要用RS2指令,因為我也是第一次用這個指令,我一點頭緒都沒有,但是現(xiàn)在發(fā)現(xiàn)其實這個指令和RS指令是區(qū)別不大的,我指的是不是很復(fù)雜使用的話。這個指令的使用要注意的是,一個是通訊格式,會根據(jù)選擇通道的不同來寫入到不同的特殊寄存器,比如通道1就寫入D8400,通道2就寫入D8420,當(dāng)然,發(fā)送和接收的特殊標記位也會相應(yīng)改變,手冊上都有。還有一個就是數(shù)據(jù)位數(shù),我們知道RS指令是可以通過SET M8161來選擇使用16位還是8位的,但是RS2指令只能使用16位數(shù)據(jù),如果要用8位數(shù)據(jù),要另作處理,怎么處理,肯定是有辦法的。其實這些都不是標題所要表達的。
最有意思的就是下面這個,如果你還有耐心的話,有意思的就是在D8420里面,我前面說過,是通訊格式,會根據(jù)選擇通道的不同來寫入到不同的特殊寄存器,我這里選擇的是通道2,然后就按照FX通訊手冊上的D8420設(shè)置方法,選擇232鏈接,波特率,數(shù)據(jù)位,停止位,這些都設(shè)置好,本以為下載到PLC以后就會看懂232ADP模塊上的SD指示燈一閃一閃的,但是事實沒有,我試過了很多方法,以為程序步數(shù)錯了,需要用到主程序的最開頭,但是沒用。最后我發(fā)現(xiàn)的原因直接讓我吐血,就是一開始的232鏈接要改成485的方式,就是說在D8420里面的232改成485,就能成功了,可是我是根據(jù)FX通訊手冊來的啊,難道手冊還有盜版的?真是分分鐘吐血。。。
最后的問題就是在這里,大家有機會用到這個模塊的時候可以注意一下,請大家不吝批評指正。