yulin3192
级别: 正式会员
精华主题: 0
发帖数量: 24 个
工控威望: 82 点
下载积分: 823 分
在线时间: 4(小时)
注册时间: 2020-06-20
最后登录: 2024-11-02
查看yulin3192的 主题 / 回贴
楼主  发表于: 2020-06-21 10:51
我的PLC用的是官方库:Modbus Rtu Slave(3.1)
波特率是9600,无校验,Port0

功能码:05 设置单个继电器状态(强制离散输出位)
QB0对应数据地址 00 00----00 07
QB1 对应数据地址 00 08----00 0F
QB2 对应数据地址 00 10----00 07
FF 00是输出高电平
00 00 是输出低电平

举例说明:
PC----PLC
     发送:03 05 00 00 FF 00 8D D8
             03:从站地址,PLC地址,类型BYTE
             05:功能码,设置单个继电器状态(强制离散输出位),类型BYTE
             00 00:设置地址,类型WORD
             FF 00:设置状态,类型WORD
         FF 00 Q0.0 = 1;
         00 00 Q0.0 = 0
FC 28: CRC校验;类型WORD
PLC---PC
     接受:03 05 00 00 FF 00 8D D8
             03:从站地址,PLC地址,类型BYTE
             01:功能码,设置单个继电器状态(强制离散输出位),类型BYTE
             00 00 : 设置地址,类型WORD
             FF 00 :设置状态,类型WORD
             FF 00 Q0.0 = 1;
         00 00 Q0.0 = 0
            3D E2: CRC校验;类型WORD

通过以上的实例你可以用各种语言编写控制程序,通过串口控制plc
[ 此帖被yulin3192在2020-06-21 11:27重新编辑 ]
小孟孟
级别: 家园常客
精华主题: 0
发帖数量: 431 个
工控威望: 533 点
下载积分: 14126 分
在线时间: 266(小时)
注册时间: 2019-02-16
最后登录: 2024-11-01
查看小孟孟的 主题 / 回贴
1楼  发表于: 2020-06-22 14:12