当前位置: 首页 > 工业控制产品 > 自动化控制 > 工业触摸屏

类型分类:
科普知识
数据分类:
工业触摸屏

PIC单片机与触摸屏串行通讯的MODBUS协议完毕

发布日期:2022-10-09 点击率:55


工控中常常需要查询体系的作业状况或许批改作业参数。触摸屏能够直观、生动地显现作业参数和作业状况,并且经过触摸屏画面能够直接批改体系作业参数,人机交互性好。单片机广泛运用于工控范畴中,与触摸屏协作,可构成杰出的人机交互环境。触摸屏和单片机通讯,需要依据触摸屏选用的通讯协议为单片机编写相应的通讯程序。Modbus协议是美国Modicon公司推出的一种有用支撑操控器之间以及操控器经由网络(例如以太网)和其它设备之间进行通讯的协议。这篇文章以PIC16F877单片机和人机电子有限公司的eView MT510T型触摸屏为例,介绍其通讯程序的开发进程。

1 体系构造

完毕触摸屏与单片机的通讯,首要是处理通讯协议的疑问。这篇文章运用翻开的Modbus通讯协议,以触摸屏作主站,单片机作从站。eView触摸屏本身支撑Modbus通讯协议,假定单片机也支撑Modbus协议,就能够进行通讯了。触摸屏与单片机之间选用的RS-232C兼容接口直接联接,传输速率设置为9600kb/s。图1为该体系的电路图

将PIC16F877单片机RC6、RC7口设置为异步串行通讯方法,经过MAX232芯片将TTL电平改换为RS232电平,再与eView触摸屏plc[RS-232]接口相连,即完毕了硬件联接。eView触摸屏PLC[RS-232]接口的管脚2为TXD,管脚3为RXD。

2 Modbus通讯协议介绍

Modbus通讯协议是一种串行的主从通讯协议,网络里仅有一台设置可作为主机(称Master),其它设备作为从机(称Slaver),主机不需编号,从机有必要编号。协议界说了主机查询及从机应对的信息帧格局。通讯时,主机首要向从机宣告恳求信息,契合相应地址码的从机接纳通讯指令,并除掉地址码,读取信息,假定没有犯错,则施行相应的使命,然后把施行效果返给主机。若从机接纳到的校验码与本机核算的纷歧样,则阐明数据在通讯进程中呈现过错,从机把这次恳求视为无效,功用代码将被批改以用于指出答复音讯是过错的,一同数据段包含了描写此过错信息的代码。当主机收到这一信息时,会从头发送恳求信息。校验方法分为LCR(传送数据为ACSII时)校验或CRC(传送数据为二进制时)校验,这儿选用CRC校验方法。

信息传输为异步方法,并以字节为单位。主从站之间通讯的字格局如表1所示。
表1 通讯的字格局


字格局(串行数据)10位二进制
开端位1位
数据位8位
奇偶校验位
接连位1位


Modbus协议可支撑ASCII码或二进制格局的数据传输。ACSII码方法下每一个字节数据分两个字节传送,二进制方法下用一个字节传送,为了削减量据传输量,通常选二进制数据方法。各个区容许发送的字节均为16进制的0~9,A~F。二进制信息帧标准构造为:

初始构造 ≥4字节的时刻

地址码 1字节

功用码 1字节

数据区 N字节

过错校验 16位CRC码

完毕构造 ≥4字节的时刻

二进制方法中,信息开端起码需要3.5个字符的接连时刻,依据运用的波特率,很简略核算这个接连时刻。发送完毕竟一个字符后,也有一个起码3.5个字符的接连时刻,然后才华发送一个新的信息。网络上的设备接连监测网络上的信息,包含接连时刻。



3 单片机与触摸屏地址的对应联络

eView触摸屏只支撑Bit和Word地址类型,而实习的单片机或其它操控器还有Byte、Double Word等标明方法,因而在进行通讯时,需要把单片机和触摸屏的数据进行改换。触摸屏画面元件读取地址的设备类型有LW、0x、1x、3x、4x、RWI、RW等选项。其间,LW标明该元件读取的是触摸屏内部的地址,如其它元件的地址;0x标明读取的是操控器的输出信号;1x标明读取的操控器的输入信号;3x和4x指操控器的寄存器地址类型,其间4x是可读可写的,3x是只读的;RWI、RW都是触摸屏的内部地址,起辅佐效果。运用这些读取地址的设备类型,触摸屏即可显现或设定操控器寄存器或I/O口的数值。以“数值输入”元件为例,经过“小键盘”输入数据即可设置单片机寄存器或I/O口的数值。假定主张了“触发地址”,那么当被触控时,输入的数据就被寄存到了指定的单片机地址中。

4 通讯程序的开发

触摸屏与单片机的通讯程序选用PIC单片机C言语编写。编译东西挑选Hitech公司的PICC编译器。程序共分三大模块,即初始化模块、数据接纳模块以及数据处理及发送模块。主程序流程图如图2所示。

PIC16F877单片机USART功用模块带有一个八位的波特率发作器BRG,BRG支撑USART的同步和异步作业方法。用SPBRG寄存器操控一个独立的八位守时器的周期。在异步方法下,发送状况/操控寄存器TXSTA的BRGH位(即D2)被用来操控波特率。对串行口进行的初始化如下:

GIE=1; %大局接连容许;

SPBRG=25; %设置波特率为9600;

TXSTA=0x04; %挑选异步高速方法;

RCSTA=0x80; %容许同步串行口作业;

RTISC6=1;

TRISC7=1; %将C口的RC6和RC7设置为异步串行通讯方法;

PFIE=1; %外围接口接连容许;

RCIE=1; %USART接纳接连容许;

TXIE=1; %USART发送接连容许;

数据接纳模块由一个接连函数构成。该接连函数将触摸屏发来的Modbus数据帧存储在一个自界说的数组中,当一帧数据接纳完时,置接纳完毕象征位为1,转入数据处理及发送模块。串行通讯接纳器的基地是接纳移位寄存器RSR,当接纳到接连时,假定RCREG缓冲器为空,RSR就把接纳到的数据送入RCREG。传送完毕后,接纳接连象征位RCIF被置1。实习的接连是不是被CPU照应,能够经过设置外围接口接连容许寄存器PIE1的接连容许位RCIE来操控。

数据处理及发送模块施行Modbus协议功用码对应的运用。eView触摸屏与单片机以Modbus协议通讯,用到的Modbus功用码如表2所示。
表2 通讯程序用到的功用码


功用码eView地址称谓含 义作 用
010x读开关量输出读取一路或多路开关量输出状况
034x读坚持寄存器读取一个或多个坚持寄存器的数据
050x
1x
写开关量输出强置一路继电器的“分/合”输出
163x
4x
预置多寄存器把详细的数据装入一组衔接的坚持寄存器


以Modbus功用码03为例来阐明触摸屏及单片机的实习通讯数据格局。如单片机地址编号为01H,触摸屏需要查看单片机中地址为0031H的寄存器的值,发送指令格局如表3所示。
表3 触摸屏发送数据构造


数据段称谓数据值
地址01
功用码03
读取地址高位00
读取地址低位31
读取数据个数高位00
读取数据个数低位01
CRC校验码高位D5
CRC校验码低位C5


假定单片机中地址为0031H的寄存器接连为05H,则单片机的回复指令如表4所示。
表4 单片机应对数据构造


数据段称谓数据值
地址01
功用码03
读取字节数02
寄存器数据高位00
寄存器数据低位05
CRC校验码高位78
CRC校验码低位47


当波特率抵达38400kb/s时,通讯依然安稳牢靠。本体系具有联接电路简略、组态活络、通讯牢靠性高档特征,并已成功运用于物料挑选操控体系项目中。因为Modbus通讯协议的翻开性的特征,国外进口操控器串行通讯大者支撑该协议,因而这篇文章所完毕的选用Modbus协议的串行通讯具有广泛的运用价值。



下一篇: PLC、DCS、FCS三大控

上一篇: MATLAB和Simulink在航