2022-7-15 廉价国产PLC工控板带485主从通信的零散记录
國產(chǎn)PLC控制板我用過幾塊,有仿三菱的有仿西門子的,總體來說不能和原廠家類比,但是勝在價格便宜,在一些小微場合確實有使用空間,而且單片機(jī)發(fā)展幾十年了芯片越來越強,早就不是一干擾就完蛋的舊社會了。所以總體來說是能用。本次主角是這個:
此板子雖然是小廠甚至作坊開發(fā)的背景讓他必然有一些問題,但是有485通信以及完整的主機(jī)和從機(jī),在60來塊的區(qū)間,我認(rèn)為幾乎是無敵存在,本著能用就是好的,便宜既是王道的理念開設(shè)本次博客。
我不打算宣傳板子所以不上鏈接,我只是怕以后用的時候還得現(xiàn)找資料琢磨所以是記錄貼自用。
首先作為仿三菱的工控板支持GX2是必須的。使用USB轉(zhuǎn)DB9的232來作為編程口通訊。
485如何使用?
1、 需要滿足8120的格式位,看下表確定傳入D8120的數(shù)據(jù)值,注意這里的值控制著485是主機(jī)還是從機(jī)。
2、在D8123傳入打算呼叫的從機(jī)地址
3、用RS指令進(jìn)行數(shù)據(jù)發(fā)送,這里務(wù)必注意,這個RS必須使用上升或者下降延來觸發(fā)發(fā)送指令。
D0 是modbus RTU 功能碼
485功能發(fā)傳送門,哇咔咔,務(wù)必看看這里
D1是操作地址
這個操作地址如果面對傳感器啥的看相關(guān)的手冊即可,而如果操作另外一個這種廉價PLC當(dāng)從機(jī)設(shè)備則查下表
D2是操作數(shù)量
D3是返回值存放在哪里~!
具體的查看自帶說明書研究。
作為485從機(jī)設(shè)定還是比較簡單的就兩步
1、設(shè)定D8120
2、設(shè)定本機(jī)設(shè)備作為從機(jī)的應(yīng)答地址D8121存儲
寫到這里似乎是寫完了`~ 但是。
零碎記錄如下(隨時補充嗎,隨時修改):
1、 目前不確定485是否有隔離。抗干擾能力未進(jìn)入實戰(zhàn)環(huán)境測試,待將來補充。
2、 M8180 寄存起可以 判斷485應(yīng)答的數(shù)據(jù)是否傳輸完成,這里我測試過,首先這個是作為主機(jī)使用的,當(dāng)你RS一條命令后,M8180就斷開了,當(dāng)收到合格數(shù)據(jù)后M8180就導(dǎo)通了。
這里注意:M8180這個狀態(tài)是阻塞的,也就是說如果RS出去沒有回應(yīng)則M8180是卡住在斷開狀態(tài),實戰(zhàn)時可寫個M8180超時復(fù)位來保證穩(wěn)定性。也可以不理會它直接下一輪RS發(fā)送等回應(yīng)。
下面這個小例子是我發(fā)數(shù)據(jù)每5秒鐘,取一個485溫度傳感器的溫度數(shù)據(jù),下面我寫了個485斷開報警的功能用的就是這個M8180,用M8180的常閉帶一個定時器8秒,如果485連接正常則每5秒會M8180會吸合一次,這樣T20就復(fù)位了,不會導(dǎo)通Y1報警燈,但是485如果斷了則M8180會一直處于斷開狀態(tài),觸發(fā)計時器激活報警燈。
3、 當(dāng)主機(jī)使用的時候有些傳感器在改設(shè)備地址的時候要求串口發(fā)送一些非標(biāo)準(zhǔn)RTU數(shù)據(jù),這時候還是要用PC的串口助手發(fā)碼來改,板子的485符合RTU規(guī)則有些數(shù)據(jù)你寫了也發(fā)布出來,我用串口助手監(jiān)測到這一情況。
4、當(dāng)從機(jī)使用時,我測試發(fā)485沒有直接保持Y線圈的能力,可以通過M寄存器來控制輸出線圈。
注釋主機(jī)來一套:
注意:rs指令除了用跳邊沿觸發(fā)外還要注意數(shù)據(jù)接受寄存器,比如上面例子的D3這個是一個16位寄存器,如果收到數(shù)據(jù)比較多則D4也會有數(shù)據(jù),再有的話D5也會存 也就是D3是起始位置,裝不下都會往后存。調(diào)用的時候知道就行。
上圖有一處錯誤,更正下作為主機(jī)通訊,地址應(yīng)該用D8123
【D8121】本機(jī)通信地址,作為從機(jī)使用需要用這個地址。
【D8123】從機(jī)通信地址,作為主機(jī)使用需要用這個地址。
目前我拿到板子時間不足24小時,暫時寫到這里,隨時發(fā)現(xiàn)隨時完善補充。
總結(jié)
以上是生活随笔為你收集整理的2022-7-15 廉价国产PLC工控板带485主从通信的零散记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 针对B端产品引发的设计思考
- 下一篇: 山东大学matlab在哪,山东大学在哪?