工控智汇

工控智汇

威纶通触摸屏MT6056i+温度传感器485通信实例(利用宏指令实现)

admin 120 60

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