通信应用
PLC:屏幕、变频器、仪表、PLC、机器人、电脑、伺服(伺服驱动器、伺服电机)、物联网
网口:RJ45、以太网
串口:485(多)(modbus RTU(最多)、TCP、ASCⅡ(很少))、422、232
引脚排序,自下向上
其中3(+)、8(-)最有用
Modbus RTU(串口通信)
可直接进行通信的:I、Q、V、AI(模拟量)(其他存储区不可直接通信,但可将其传送至可直接通信的存储区)
RTU master 针对200smart 0口(暴露在外面的通信口)
RTU master2 针对200smart 1口(在信号板内的接口)
RTU最多可控制247个从站
错误代码
指令
主站指令
CTRL(定义参数)
定义主从站间的速度、奇偶、端口、延时(等多久)
PPI协议(西门子专属,老协议基本不用)
parity(奇偶校验位):一般默认偶校验(2);与之通信的另外一台设备应该有相同的Parity
Timeout: 典型值1000ms(从站多时,建议改的更小)
注意:Done和Error地址不可重复
波特率、奇偶校验,必须主从一致
MSG(主站读写)
First:触发要用沿指令
Slave:从站站号(自己定义即可),地址(相当于Modbus TCP中的端口号IPport)
addr:写到从站的哪里去,其和从站的V存储区有特定对应关系 (V存储区是以字为单位)(相当于TCP协议Client中的addr(Modbus地址))
dataptr:主站数据存储起始地址(永远以字节形式展现)(相当于Modbus TCP协议Client中的dataptr)
一般要保证EN(使能)和First同步得到信号
slave(从站号):取值范围一般在1-247,主站站号和从站站号可相同。0只有主站功能(广播作用,只能发不能收 )
主站站号从哪看?
Count: 单位是位(对于Q、I),对于V存储区单位是字
Dataptr:必须是指针形式
(表示从该地址开始,其地址的大小随Cout变化;例如:Dataptr为&IB0,当count=8时,数据区地址为I0.0-i0.7.当cout=16时,数据区地址为I0.0-I1.7)
读写需要循环沿触发
分配库存储区
从站指令
INIT(定义参数)
所有管脚都是定义从站的,不可定义主站
addr:整个从站的地址(和主站MSG指令中的addr含义不同),此处Addr和主站MSG中Slave相同(相当TCP通信中的IPport)
MaxIQ:单位是位
MaxAI:单位是位
MaxHold:单位是字(特指从站V存储区,有多少地址可供主站读写)
Holdstart:要求用指针,从站V存储区的起始地址;例如:holdstar=&vb0,maxhold=1000字,含义为从VB0开始的1000个字的空间(VB0-VB2000)可供读写
SLAVE(从站应答指令)
分配库存储区
从站 INIT holdstart和主站Addr(Modbus地址)对应关系
读写V存储区(4xxxx)
Modbus地址=40001+(从站实际存储地址-从站起始地址)/2
例子:
Holdstart =&VB10 ;实际写/读地址为VW30(V存储区以字为单位)
对应Modbus地址=40001+(30-10)/2=40011
主站和从站通讯、从站和从站通讯
从站和从站通讯,两者不可直接通信,只能通过主站中转通信
一般来说,不会往I/Q区读写数据,只是向V存储区读写数据(空间大)
Modbus TCP
通信资源
服务器端口号和本地端口号要一一对应
客户端指令
ipaddr 1-4: 服务器的ip地址
ip-port: 服务器端口号 默认502
rw:读写模式 (0读1写)
dataptr:(指针形式) 起始地址(通信数据本地存储区域,数据读出或写入的数据存储区)
addr:modbus地址(区分不同寄存器的功能码)服务器的参数地址,来自服务器holdstart管脚
count:要读写的数据参数长度
服务器指令(写在服务器的cpu中)
ip_port:服务器自身端口号(本地与远程端口号要一致)
connect:是否接收客户端请求
maxiq: 最大输入输出点
maxai:最大模拟量输入,最大56
maxhold:允许数据访问的长度
holdstart:v存储器保持寄存器起始指针
client和server 中addr和holdst 对应关系及换算
服务器端口holdstart 和 客户端addr关系
dataptr 如何确定?
count如何确定?
holdstart和addr对应关系:
服务器地址VD60中的60为绝对地址,结果为客户端中的addr
VD××地址为何要写成VB×× ??
知道modbus地址(客户端addr)和起始地址(服务器holdstart)换算成绝对地址
示例练习
复位和置位?
Modbus TCP/IP指令
TCP_CONNECT端口及IP地址的设定规则
connect id:建立的连接编号是多少,以此来识别机器
ip addr:客户端写服务器ip地址,服务器写客户端的ip地址
remport:远程设备端口号(服务器)
locport:客户端端口号
active:建立通讯时处于什么模式(主动1/被动0)
TCP/IP数据发送和接收指令的应用
(服务器)length:实际接收长度