河南张先生
努力做事,诚信做人
级别: 家园常客
精华主题: 0
发帖数量: 681 个
工控威望: 966 点
下载积分: 3211 分
在线时间: 882(小时)
注册时间: 2009-04-25
最后登录: 2025-03-28
查看河南张先生的 主题 / 回贴
楼主  发表于: 前天
这是一个厂家给的通讯协议:
楼层提升机受控于 PLC,Lothar 系统与 PLC 以 Modbus TCP/IP 协议通信。
Lothar 系统为 MasterClient,PLC 为 SlaveServer,寄存器开始地址:0x0000
MODBUS TCP/IP 协议
⚫ ADU=MBAP+PDU=MBAP+功 能码+数 据
⚫ MBAP
描述 长度(字节) 描述 客户端表示 服务端表示
事务识别号  2  Modbus 请求/响应任务的识别号   由客户端初始化时形成 由接收到的请求信息复制
协议识别号 2   0=Modbus 协议 由客户端初始化时形成 由接收到的请求信息复制
长度 2 后面的字节数量 由客户端发送请求时形成 由服务端响应请求时形成
设备识别号 1 连接的从站地址 由客户端初始化时形成 由接收到的请求信息复制
⚫ 功能 码
0x03 读取数据 readHoldingRegistersAsync
0x10 写入数据 writeMultipleRegistersAsync
数据报 文示 例
     信号                     数据流向                                           值                                                          寄存器地址
数提升机状态        PLC>>>Lothar                0x0000(异常) / 0x0001(正常)                                        0x0000
提升机门状态        PLC>>>Lothar                0x0000(已关) / 0x0001(已开)                                         0x0001
提升机楼层状态    PLC>>>Lothar       0x0000(未知) / 0x0001(已抵达1楼)/0x0002(已抵达2楼)       0x0002
呼叫提升机           Lothar>>>PLC       0x0000(否)/0x0001(呼叫提升机抵达 1 楼并自动开门 )
                                                            0x0002( 呼 叫 提 升 机 抵 达 2 楼 并 自 动 开门)                   0x0003
                                                            0x0003(呼叫提升机抵达 3 楼并自动开门)
释放提升机             Lothar>>>PLC      0x0000(否)/0x0001(是)                                                          0x0004

其中Lothar 系统为主客户端。比如西门子SMART是不是作为从服务器使用 ,是用client模块建立链接还是用Server模块建立链接,寄存器地址0x000是PLC上的地址还是Lothar 系统为主客户端地址,
梦雨天涯
微信hui530527   &
级别: 网络英雄
精华主题: 0
发帖数量: 4589 个
工控威望: 7983 点
下载积分: 16918 分
在线时间: 3166(小时)
注册时间: 2016-10-31
最后登录: 2025-03-28
查看梦雨天涯的 主题 / 回贴
1楼  发表于: 前天
图片:
微信hui530527      b站账号,非标自动化谭工
请不要随意加我,不会随便通过。QQ群942493953
河南张先生
努力做事,诚信做人
级别: 家园常客
精华主题: 0
发帖数量: 681 个
工控威望: 966 点
下载积分: 3211 分
在线时间: 882(小时)
注册时间: 2009-04-25
最后登录: 2025-03-28
查看河南张先生的 主题 / 回贴
2楼  发表于: 昨天
用Server模块建立链接,寄存器地址0x000是PLC上的,不就是0区寄存器,占用输出口地址了吗,又比如地址0x0002 里面有判断楼层值 1 2 3 4 5 如果0X0002是位寄存器,怎么去设置,这点不明白,请指教
[ 此帖被河南张先生在2025-03-28 09:29重新编辑 ]
gaoyingchun
GaoYingChun
级别: 略有小成
精华主题: 0
发帖数量: 213 个
工控威望: 308 点
下载积分: 2922 分
在线时间: 115(小时)
注册时间: 2016-05-06
最后登录: 2025-03-28
查看gaoyingchun的 主题 / 回贴
3楼  发表于: 昨天
1、上面提到的地址应该是Lothar系统端

2、共用到0~4,5个寄存器

3、Modbus协议,03/10功能码,都是针对保持寄存器使用的,上面写成0X开头,应该是搞错了,你还是按照4X吧
voynich
级别: 正式会员
精华主题: 0
发帖数量: 71 个
工控威望: 95 点
下载积分: 3494 分
在线时间: 217(小时)
注册时间: 2021-12-07
最后登录: 2025-03-28
查看voynich的 主题 / 回贴
4楼  发表于: 昨天
图片:
位的加10001,字的加30001或40001
不小心遇见你
自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
级别: 工控侠客

精华主题: 3 篇
发帖数量: 2083 个
工控威望: 3003 点
下载积分: 25300 分
在线时间: 1480(小时)
注册时间: 2014-01-05
最后登录: 2025-03-28
查看不小心遇见你的 主题 / 回贴
5楼  发表于: 昨天
图片:
这里面哪来的位寄存器
人家的0x只是表示十六进制
项目、视觉、通讯QQ3515716