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