基于MODBUS 协议的通信程序设计
MODBUS 协议的主从编程方法触摸屏和DSP 按照MODBUS 协议通信,将触摸屏作为主站,DSP 作为从站,串口连接采用RS485。触摸屏和DSP 的通信是有触摸屏发起的,DSP 采用中断方式响应触摸屏发送来的数据,非通信情况下DSP 可以做其它更多的工作。当触摸屏有数据发送给DSP 时,触发DSP 接收中断,DSP 进入接收中断服务子程序,此时,触摸屏发送给DSP 的是一个完整的数据帧,至少包含8 个字节的数据长度, 在完整读取这组数据后,DSP 对其进行处理。首先进行从设备站号匹配(本文中DSP 站号设为07),如果匹配不成功则DSP 不响应触摸屏的查询,DSP 不回送任何信息;如果匹配成功则进行CRC 校验,若CRC 校验出错,则查询失败,不返回数据信息;若CRC 校验正确,则进行下一步的命令解析,并返回给触摸屏对应的数据信息。
下面简要介绍如何从DSP 中读取几个模拟量并显示在触摸屏上,读可读写模拟量寄存器的功能码是03。
触摸屏发送的命令为:[设备地址] [功能码03] [起始寄存器地址高8 位] [低8 位] [读取的寄存器数高8 位] [低8 位] 。
例如:07 03 00 03 00 02 34 6D。此命令说明要从DSP的起始地址为00 03 的寄存器中读取两个模拟量。
此时,若设备地址匹配且CRC 校验正确,则DSP 会返回数据给触摸屏。
DSP 返回的数据为:[设备地址] [功能码03] [返回的字节个数][数据1][数据2]…[数据n] 。
例如响应上面的命令返回的数据为:07 03 04 00 10 0020 9C 2E。说明返回的模拟量为16 和32。
基于MODBUS 协议的通信程序设计
页:
[1]