Modbus协议下单片机与eView触摸屏的通信方法
发布时间:2008/5/27 0:00:00 访问次数:496
工业控制中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。
触摸屏与单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。modbus协议是美国modicon公司推出的,一种有效支持控制器之间以及控制器经由网络(如以太网)与其他设备之间进行通信的协议。本文以stc 89c51单片机和人机电子有限公司的eview触摸屏为例,介绍其通信程序的开发过程。
1 系统结构 实现触摸屏与单片机的通信,主要是解决通信协议的问题。本文使用开放的modbus通信协议,以触摸屏作主站,单片机作从站。eview触摸屏本身支持:modbus通信协议,如果单片机也支持modbus协议,就可以进行通信了。eview触摸屏支持rs-232和rs-485两种通信接口。在工业控制领域,由于rs-485具有可靠性高、传输距离远、抗干扰能力强等优点,所以在本系统中触摸屏与单片机通信采用rs-485连接,传输速率没置为9 600 kbps。rs-485信号传输是一种半双工的传输方式,单片机通过一个rs-232/rs-485无源转换器把232信号转换成485信号,连接到eview触摸屏上。图1为该系统的原理图。
单片机控制系统采用stc89c51系列单片机,其内部集成max810/stc810专用复位电路(原有外部复位可继续保留,与intel 8051引脚兼容),具有抗干扰能力强、加密性强、高抗静电(esd)、超低功耗等特点,而且价格低廉。在本系统中,触摸屏是上位机,单片机是下位机。
2 modbus协议
2.1 modbus协议简介
modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(如以太网)与其他设备之间可以通信。它已经成为一种通用工业标准。不同厂商生产的控制设备可以通过它连成工业网络,集中监控。
modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录;制定了消息域格局和内容的公共格式。 当在某一modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,以及决定要产生何种行动。如果需要回应,则控制器将生成反馈信息并用modbus协议发出。在其他网络上,包含了modbus协议的消息转换为在此网络上使用的帧或包结构。
2.2 modbus rtu通信数据传输模式
当控制器设备基于modbus协议以rtu模式通信时,消息中的每个字节包含2个4位的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ascii方式传送更多的数据。
编码采用8位二进制,十六进制数0~9和a~f;消息中每个8位域都是由2个十六进制字符组成。组织结构如下:
2.3 modbus rtu消息帧结构
modbus rtu消息帧结构如下:
(1) 地址码
地址码为通信传送的第一个字节。这个字节表明,由用户设定地址码的从机将接收由主机发送来的信息。每个从机都有具有唯一的地址码,只有符合地址码的从机才能响应回送,且响应回送均以各自的地址码开始。主机发送的地址码则表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。地址0用作广播地址,以使所有的从设备都能认识。
(2) 功能代码
功能代码为通信传送的第二个字节。modbus通信规约定义可能的代码范围足十进制的1~255。当然,有些代码适用于所有控制器,有些仅适用于某种控制器,还有些保留以备后用。主机发送请求,通过功能码告诉从机执行什么动作;从机响应请求.从机发送的功能码与从主机发送来的功能码一样,表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1,则表明从机没有响应操作或发送出错,主设备应用程序得到异议的同应后,典型的处理足重发消息。表1列出了常用modbus支持的部分功能码。
工业控制中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。 触摸屏与单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。modbus协议是美国modicon公司推出的,一种有效支持控制器之间以及控制器经由网络(如以太网)与其他设备之间进行通信的协议。本文以stc 89c51单片机和人机电子有限公司的eview触摸屏为例,介绍其通信程序的开发过程。 1 系统结构 实现触摸屏与单片机的通信,主要是解决通信协议的问题。本文使用开放的modbus通信协议,以触摸屏作主站,单片机作从站。eview触摸屏本身支持:modbus通信协议,如果单片机也支持modbus协议,就可以进行通信了。eview触摸屏支持rs-232和rs-485两种通信接口。在工业控制领域,由于rs-485具有可靠性高、传输距离远、抗干扰能力强等优点,所以在本系统中触摸屏与单片机通信采用rs-485连接,传输速率没置为9 600 kbps。rs-485信号传输是一种半双工的传输方式,单片机通过一个rs-232/rs-485无源转换器把232信号转换成485信号,连接到eview触摸屏上。图1为该系统的原理图。 单片机控制系统采用stc89c51系列单片机,其内部集成max810/stc810专用复位电路(原有外部复位可继续保留,与intel 8051引脚兼容),具有抗干扰能力强、加密性强、高抗静电(esd)、超低功耗等特点,而且价格低廉。在本系统中,触摸屏是上位机,单片机是下位机。 2 modbus协议 2.1 modbus协议简介 modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(如以太网)与其他设备之间可以通信。它已经成为一种通用工业标准。不同厂商生产的控制设备可以通过它连成工业网络,集中监控。 modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录;制定了消息域格局和内容的公共格式。 当在某一modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,以及决定要产生何种行动。如果需要回应,则控制器将生成反馈信息并用modbus协议发出。在其他网络上,包含了modbus协议的消息转换为在此网络上使用的帧或包结构。 2.2 modbus rtu通信数据传输模式 当控制器设备基于modbus协议以rtu模式通信时,消息中的每个字节包含2个4位的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ascii方式传送更多的数据。 编码采用8位二进制,十六进制数0~9和a~f;消息中每个8位域都是由2个十六进制字符组成。组织结构如下: 2.3 modbus rtu消息帧结构 modbus rtu消息帧结构如下: (1) 地址码 地址码为通信传送的第一个字节。这个字节表明,由用户设定地址码的从机将接收由主机发送来的信息。每个从机都有具有唯一的地址码,只有符合地址码的从机才能响应回送,且响应回送均以各自的地址码开始。主机发送的地址码则表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。地址0用作广播地址,以使所有的从设备都能认识。 (2) 功能代码 功能代码为通信传送的第二个字节。modbus通信规约定义可能的代码范围足十进制的1~255。当然,有些代码适用于所有控制器,有些仅适用于某种控制器,还有些保留以备后用。主机发送请求,通过功能码告诉从机执行什么动作;从机响应请求.从机发送的功能码与从主机发送来的功能码一样,表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1,则表明从机没有响应操作或发送出错,主设备应用程序得到异议的同应后,典型的处理足重发消息。表1列出了常用modbus支持的部分功能码。
|