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