1、硬件连接

1、具体实现
发送数据帧格式如下:

接收数据帧格式如下:

触摸屏设置如下:
PLC类型选择“FreeProtocal”自由通信协议,接口类型:RS-4852W,COM:COM1,波特率:9600,无校验、8个数据位、1个停止位。


3、程序代码
macro_commandmain()//主程序格式
charcommand[8],response[8]//定义字符数组,存放发送、接收数据
charreceive_len,read_data[2]
FILL(command[0],0,8)
//数据初始化,表示将command[0]开始的8个变量值赋值为0,
//即command[0]~command[7]值赋为0。
FILL(response[0],0,7)
//数据初始化,表示将response[0]开始的7个变量值赋值为0,
//即response[0]~response[6]值赋为0。
command[0]=0x01//站号
command[1]=0x04//功能码
command[2]=0x00//温度地址高字节
command[3]=0x01//温度地址低字节
command[4]=0x00//数据数量高字节
command[5]=0x01//数据数量低字节
command[6]=0x60//CRC
command[7]=0x0A//CRC
OUTPORT(command[0],"MODBUSRTUDevice",8)
//利用OUTPORT函数将数据帧发送出去,发送对象为"MODBUSRTUDevice",即温度传感器。
//利用INPORT接收数据,存放在response数组中
INPORT(response[0],"MODBUSRTUDevice",8,receive_len)
LOBYTE(response[4],read_data[0])//取低字节
LOBYTE(response[3],read_data[1])//取低字节
SetData(read_data[0],"LocalHMI",LW,0,2)
//将读取的温度值,显示在触摸屏上,触摸屏地址为LW0
macro_command





