用PLC實現(xiàn)485自由協(xié)議通訊
PLC是種專門為在工業(yè)環(huán)境下應(yīng)用而設(shè)計的數(shù)字運算操作電子系統(tǒng)。它采用一種可編程的存儲器,在其內(nèi)部存儲執(zhí)行邏輯運算、順序控制、定時、計數(shù)和算術(shù)運算等操作的指令,通過數(shù)字式或模擬式的輸入輸出來控制各種類型的機(jī)械設(shè)備或生產(chǎn)過程。
485總線在日常中也廣泛應(yīng)用于多主機(jī)/驅(qū)動器工業(yè)環(huán)境。其典型應(yīng)用與RS-422相似,包括:過程自動化(化工、釀造、造紙)、工廠自動化(汽車制造、金屬加工)、HVAC、安防、電機(jī)控制、運動控制。
本文將使用PLC來實現(xiàn)485自由協(xié)議通訊控制下位設(shè)備。
一:調(diào)試前的準(zhǔn)備
搭建測試環(huán)境:電腦上安裝好PLC配套的編程環(huán)境。PLC肯定要選擇支持485自有通訊的型號,本次使用的是匯川的H3U系列,使用的編程軟件為autoshop。
下位設(shè)備選擇使用485自由協(xié)議的步進(jìn)電機(jī)控制器,這里使用的是譜思PMC005B3多軸控制器,同時準(zhǔn)備好電源,連接線:
演示使用的所用硬件如下表所示:
二:硬件連接示意
三:通訊口參數(shù)設(shè)置
首先設(shè)置通訊口的參數(shù)。
PLC的自由通訊口是COM1,所以選擇COM1進(jìn)行設(shè)置。根據(jù)下位設(shè)備使用的協(xié)議進(jìn)行選擇就好。注意站號需要修改,不能沖突。設(shè)置完成之后,確定保存。這里的起始符與結(jié)束符都是十進(jìn)制的ASCII碼,意思是在傳輸?shù)淖址^尾分別加上起始符與結(jié)束符。比如PMC005的通訊協(xié)議中規(guī)定,換行符(10進(jìn)制ASCII碼為13)是一條指令的結(jié)束標(biāo)志,可以在這里勾選結(jié)束符13,就不用在手動在每條指令中添加。
四:編程并運行
接下來我們編寫程序。如下圖:
可以在查看中變更編程語言的類型。
使用的是內(nèi)置功能塊RS發(fā)送自由指令,采用的是用直接將16進(jìn)制的ASCII碼賦值給PLC內(nèi)部的寄存器的方式。這里發(fā)送的指令是/8&\r,根據(jù)通訊協(xié)議是查詢8號站點的固件版本與時間。
接下來是編譯、下載、聯(lián)機(jī)、運行
在登錄設(shè)備下載程序前,請確認(rèn)PLC模塊已經(jīng)與電腦正常連接。如果沒有,請檢查您的連線、供電。使用以太網(wǎng)連接時,請確保PLC的IP與電腦IP在同一網(wǎng)段。
在開始運行前,請先調(diào)整機(jī)構(gòu),保您的設(shè)備能夠進(jìn)行測試,以防出現(xiàn)不必要的損失和意外。
之后可以開始運行程序。
將程序下載到PLC當(dāng)中,運行后打開監(jiān)控。如果提示編譯錯誤,請檢查程序編寫。
進(jìn)入監(jiān)控界面,打開寫入根據(jù)程序邏輯,這里只要將M1置1就會自動賦值并且將指令發(fā)送,返回的指令可以監(jiān)控D100以及之后的寄存器,轉(zhuǎn)化為字符串就可以看到返回信息。這里為了方便我們外掛了一個485轉(zhuǎn)換器到電腦上,用串口調(diào)試助手可以看到返回的數(shù)據(jù)。
已經(jīng)讀取到了內(nèi)部時間和版本號,這樣說明通訊就成功了。在這個基礎(chǔ)上我們不妨對程序稍加改動,發(fā)一個復(fù)雜的組合指令。
使用同樣的方式我們將所有軸的細(xì)分設(shè)置為16,工作電流設(shè)置為50%,待機(jī)電流設(shè)置為40%,加速度因子100,最大速度32000PPS,并且同時讓四軸運行正轉(zhuǎn)32000步。
同樣的將M3置1,就會賦值,并且發(fā)送。
同樣的使用串口調(diào)試助手監(jiān)控到了控制器的返回報文,此時四個電機(jī)已經(jīng)同時運轉(zhuǎn)了,這樣一來一個簡單的485通訊控制電機(jī)轉(zhuǎn)動的小程序就完成了!
五:沒有返回值,應(yīng)該如何排查
檢查連線是否正確,是否符合485組網(wǎng)規(guī)范。
檢查通訊設(shè)置,波特率等是否正確
檢查PLC程序是否正常運行。
檢查指令的編寫,指定的站點號、指令格式、指令內(nèi)容等是否正確,是否末尾添加換行符。特別的,PMC005的協(xié)議中嚴(yán)格區(qū)分大小,指令中的逗號也是英文(半角)符號,請注意。
提交
通訊異常,該如何終止步進(jìn)電機(jī)的運動
一般反向電動勢(倒發(fā)電)現(xiàn)象的處理方法
PLC的modbus設(shè)置
多圈一體化步進(jìn)電機(jī)在工業(yè)糾偏系統(tǒng)中的應(yīng)用
譜思多軸板自動化移液處理方案