信捷plc使用modbus rtu和信捷變頻器通訊
0.1:要求:plc和變頻器都支持modbusRTU的
1:modbus和rs485的區別
modbus是一種串行通訊協議,而rs485是硬體介面,大多數的modbus都是通過串口485進行的,485又分全雙工和半雙工,區別是全雙工是雙絞線的分別是A和B,半雙工是四線的分別是A+ A-和B+ B-
2:modbus通訊協議分幾種
modbus通訊協議分三種,分別是modbus TCP,modbus RTU,modbus ASCII
Modbus協議需要對資料進行校驗,串行協議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗,但TCP模式沒有額外規定校驗 RTU和ASCII用得比較多的,它們在數值資料表示不同和協議細節上略有不同,其中用得最多的是RTU本文中也是使用modbus RTU3:modbus RTU
3.1 modbus RTU功能就是對單個或多個暫存器讀或者寫,在暫存器前面可加控制3.2資料幀10位,1個起始位,8個資料位,1個停止位,無校驗,波特率:9600;19200
3.3格式
1 2 3 4 5 6 7 8
01H 06H 20H 00H 00H 01H CRC1 CRC2
第1位元組 ADR : 從機地址碼(=001~254)
第2位元組 03H : 讀暫存器值功能碼
第3、4位元組 : 要讀的暫存器開始地址要讀FCC下掛儀表,
第5、6位元組 : 要讀的暫存器數量
第7、8位元組 : CRC校驗可以用CRC校驗計算器算從機接送到正確的會回復一個一樣的………………………………………………………………………………………… 以上就是一些關于modbusRTU相關的概念
以下就是本文中的信捷plc和信捷變頻器通訊plc是信捷的XC2 變頻器是信捷V5 兩者采用的是用485全雙工
設定PLC與變頻器的通訊引數,資料長度為8位,偶校驗,1位停止位,波特率為19200bps,
變頻器的頻率給定通道P0.01:4; (串行口給定)
運行命令通道選擇P0.03:2;( 串行口運行命令通道)
通訊配置P3.09:064;( 6:1-8-1格式,無校驗. 4:19200BPS)
本機地址P3.10:001;本機地址1
程式如下
LDP X0 ADD D0 K1000 D0 頻率加10
LDP X1 SUB D0 K1000 D0 頻率減10
LDP X2 MOV K2 D100 正轉
LDP X3 MOV K7 D100 停止
LDP X4 MOV K3 D100 反轉
LD M8002 SET M0 置位M0
LD M0 OUT T0 K5 計時5毫秒
LDP T0 REGW K1 H2001 D0 K2 從 PLC 寫資料到變頻器
RST M0 復位M0
SET M1 置位M1
LD M1 OUT T1 K5 計時5毫秒
LDP T1 REGW K1 H2000 D100 K2 從PLC寫資料到變頻器
RST M1 復位M0
SET M2 置位M2
LD M2 OUT T2 K5 計時5毫秒
LDP T2 REGR K1 H2103 K6 D200 K2 從變頻器讀資料到PLC
RST M2 復位M2
SET M0 置位M0 回圈發送
注意 :CRC校驗碼在plc中可以plc自己算出來的 問什么要計時5毫秒 因為modbusRTU是單個指令發送 一起發送的話 不算單個指令 只能接受到一個
關于regw和regr指令REGW是暫存器讀指令,REGW S1 S2 S3 D1 D2 簡單來講就是:
S1從機地址
S2引數地址(可以參考變頻器手冊中的通訊協議引數定義)
S3暫存器個數
D1暫存器地址
D2串口編號(一般是K1~K3)
REGR也是差不多的,區別就是反過來了,從變頻器讀回來 存放到暫存器中

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/35859.html
標籤:其他
