这是一个厂家给的通讯协议:
楼层提升机受控于 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 系统为主客户端地址,