文章撰寫不易,各位看官慢慢欣賞,看完記得給我點贊,要點強贊哦,先謝謝了!抱拳~
看過第一集的伙伴們應(yīng)該對MODBUS的功能碼有了大概的了解。只要遵循每個功能碼的發(fā)送幀規(guī)格,那么就一定能跟支持MODBUS協(xié)議的設(shè)備通訊上。
發(fā)送幀規(guī)格我們了解了,那么我們到底還要了解哪些東西才能真正意義上進(jìn)行通訊呢?
首先,我們要了解MODBUS硬件上的知識(線連接對了,才能通訊上),然后還要了解MODBUS通訊格式(就像對講機,頻道頻率對上了,才能進(jìn)行通話),最后就是運用PLC/上位機的通訊指令來完成最后的臨門一腳。
好了,把思路大概理了一遍,那么我們具體看看是如何操作的。
第一:硬件知識
MODBUS協(xié)議主要是運行在RS485這條大馬路上的,它是交通指揮員(RS232也可以支持MODBUS協(xié)議,但是傳輸距離沒有RS485來的遠(yuǎn),因此現(xiàn)在普遍都采用RS485接口來承載MODBUS協(xié)議)。RS485是由兩條線組成,通過這兩條線之間的電壓差來傳遞信號。而MODBUS協(xié)議就是來管理這些信號的。因此,由于MODBUS協(xié)議是跑在RS485硬件接口上的,因此就決定了整個通訊方式是半雙工通訊(同一時間內(nèi),要么發(fā),要么收,不能同時收發(fā),就像對講機那樣,等對方說OVER了,我們這邊才能講話),所以,在MODBUS通訊中,存在主從之分。
在MODBUS通訊中,可以一主多從,后面的從站進(jìn)行手拉手的方式進(jìn)行連接接線。但是如果距離一長,兩線直接的信號就會衰減,因此需要增加終端電阻來增加信號強度。
下面就把三菱FX系列PLC的接線圖展示出來:
首先是拓?fù)鋱D:
它們的連接方式就是手拉手連接,或者稱并行連接。
接著是具體的端子連接方式:
這里的從站都是三菱MODBUS485模塊,實際應(yīng)用中當(dāng)然也可以是其他支持485通訊的儀器儀表等。
我們在實際工業(yè)現(xiàn)場,都會看到在儀器儀表或者PLC中,都能看到A,B端口,或485+,485-,這些端口就表示這些儀器儀表是支持485通訊的。
在下圖三菱的連接方式中,它是4個端口,這是標(biāo)準(zhǔn)的RS422接口,當(dāng)然了,這個RS422接口同樣也適用于RS485,我們只需要像下圖這樣,將SDA和RDA短接后變成485+(或A),將SDB和RDB短接后變成485-(或B),這樣就可以連接到其他設(shè)備上了。
與其他支持485通訊的設(shè)備的連接
最后是接地措施:有條件的請按照下面方法接地。這樣能最大程度避免干擾的影響。
有時候采取單端接地,有時候采取雙端接地,都要結(jié)合現(xiàn)場實際情況。
第二、通訊格式的講解
因為硬件采用的是串行通訊接口,且屬于半雙工異步通訊,因此通訊格式就要遵循異步串行通訊的幀格式:波特率,數(shù)據(jù)位,奇偶校驗位,停止位。
由于我們這里講的MODBUS RTU模式,因此“數(shù)據(jù)位”固定為8位。
我們以FX3U-32MT+485BD板+485ADP-MB組合為例,如圖所示:
FX3U只能擴展出2個通道。這里特別說明下,如果沒有485BD板,那么此時的485ADP-MB就變成了通道1。
由于我們要驗證功能碼報文,所以拿串口調(diào)試助手當(dāng)主站,plc當(dāng)從站。而且由于485BD板不能當(dāng)從站,因此我們要通過485ADP-MB來進(jìn)行測試。
TIPS:
PLC其實是一個最好的從站設(shè)備,它有MODBUS所有的存儲區(qū)特性。
那么言歸正傳,第一步就是對PLC的通訊格式進(jìn)行設(shè)定,我們通過特殊寄存器來設(shè)定。下面就是兩個通道的特殊寄存器:
下面是特殊繼電器:
下面是通信格式的具體設(shè)置表格:
由于我們要拿通道2的485ADP-MB來進(jìn)行測試,所以我們要用到以下特殊寄存器:
D8420:通信格式:我們按照如下通信格式進(jìn)行設(shè)置:數(shù)據(jù)位=8,奇偶校驗=偶校驗,停止位=1,波特率=9600,RS485連接。那么按照通信格式設(shè)置表格它的二進(jìn)制為0001 0000 1000 0111,轉(zhuǎn)換為16進(jìn)制值是H1087
D8421:協(xié)議:我們按照如下協(xié)議設(shè)置:MODBUS協(xié)議,MODBUS從站,RTU模式。那么它的16進(jìn)制值為H11
D8434:從站本站號:設(shè)置為1。那么它的16進(jìn)制值為H1
將上面三個的特殊寄存器設(shè)置完后,我們要用M8411特殊輔助寄存器來觸發(fā)將它們寫入到PLC中。它是在用到MODBUS通信時,用來寫入通信設(shè)定的。如果是RS/RS2指令,就可以用M8002來寫入,沒有特殊要求。
到此,F(xiàn)X3U的485ADP-MB從站就設(shè)置完畢了,至于主站,我們后面會講到,敬請期待。然后我們將程序下載進(jìn)去后,一定要斷電重啟讓設(shè)定生效!
第三集我會專門錄制視頻,將接線,通信設(shè)置以及每個功能碼的收發(fā)幀給大家進(jìn)行一一演示。
只有了解了功能碼的收發(fā)報文,我們才能進(jìn)行主站控制。才能解析返回回來的報文,從而提取有用的數(shù)據(jù)。
敬請期待
謝謝
聯(lián)系客服