基于PPI 协议的触摸屏与Atmega128 单片机通信的实现

2012-07-02 00:51李英爽
兵器装备工程学报 2012年6期
关键词:西门子触摸屏字节

李英爽

(浙江大学 电气工程学院,杭州 310027)

1 PPI 通信协议系统

触摸屏是近些年快速发展起来的一种全新的人间交互界面,它具有坚固的外壳,丰富的操作界面,以及标准的通信协议。工业上触摸屏的应用可使人机交互更加直观,且易于操作[1]。

本系统中触摸屏和单片机仿照PPI 协议进行通信[2]。PPI 协议是西门子S7 -200 系列PLC 使用的一种独有的通信协议。通过此协议,西门子S7 -200 系列PLC 可以与一些交互设备进行通信。PPI 协议最大特点就是使用此协议不需要再编写PLC 的通信程序,这样极大地节省了PLC 有限的程序存储空间。所以很多与S7 -200 系列PLC 的交互设备都使用了PPI 协议,这些使用PPI 协议的交互设备一般不可移植到其他系列的设备中。本文通过Atmega128 模仿PPI 协议的通信方式,实现了触摸屏使用PPI 协议与Atmega128 单片机的通信。

首先通过监控西门子S7 -200 系列PLC 与触摸屏之间的数据通信,可以分析出PPI 协议通讯采用主从方式,主站向从站发送请求,从站做出应答。主站收到应答信息后发送确认信息,从站收到确认信息后完成读写操作并返回响应的数据[3]。从站不主动发送信息,而是等候主站向其发送请求或查询,按要求应答。PPI 协议通讯设置采用8 个数据位,1个停止位,偶校验位,波特率可自行选择。主设备向从设备发送命令式,其格式为:起始符、数据长度、目标地址、源地址、功能码、目的服务存取点、源服务存取点、数据单元、校验和、结束符。表1 即为典型PPI 协议帧格式的组成[4]。

PPI 协议可以实现1 次读取、写入1 个数据或多个数据。在PLC 内部对不同的数据类型、不同存储器类型进行操作时,具体的数据长度有所不同。本文以读取西门子S7 -200系列PLC 一个V 存储器的一个双字节为例进行研究,具体的数据格式如表2 所示。

表1 PPI 数据帧结构

表2 触摸屏读取S7 -200 系列PLC 寄存器VD100 的指令格式

表2 中:SD 为起始符,固定为68H;LE、LEr 为从DA 到DU 的数据长度,以字节记,如果读1 个数据,则始终为1BH;DA 为目的地址,默认情况下,PLC 的地址为02H;SA 为源地址,默认情况下,PC 机地址为00H,HMI 设备的地址为01H;FC 为功能码,读写数据时可保持以上数据不变;CC 为目的服务存取点,读写数据时可保持以上数据不变;GU 为源服务存取点,读写数据时可保持以上数据不变;DU 为数据单元,包括读取数据的长度、类型、地址;FSC 为校验和,为DA 到DU 的数据和;ED 为结束符,始终为16H。

当PLC 接收到如表2 的正确数据格式时,会返回给触摸屏一个应答信号E5H。当触摸屏收到E5H 后,发送确认信息为10H 02H 00H 5CH 5EH 16H。当PLC 接收到以上数据时会把相应的数据发送给触摸屏,若读取的数据为1 个双字节就会返回31 个字节,其中Byte[25]到Byte[28]就是要读取的数据。读取的数据都是高字节内容在前。

2 控制系统的硬件设计

本次设计采用威纶通MT6070IH 触摸屏,其具有2 种通信方式:RS232 和RS485。在RS485 通信方式下,信号传输的距离远,同时拥有多机通信的功能,并且具有良好的抗干扰能力,所以触摸屏与西门子S7 -200 系列PLC 通信方式为RS485 通信。本系统是用单片机代替西门子S7 -200 系列PLC,单片机与触摸屏采用的通信方式为RS232 通信,其通信框图如图1 所示。ATmega 128 具有2 个串行通信端口,本研究用的是ATmega128 的RXD1(PD2)和TXD1(PD3)串行通信口,目标是实现ATmega128 采集旋转编码器的数据,并把这个数据发送给触摸屏来显示。PE4 与PE5 用来读取旋转编码器的数据。

图1 单片机部分硬件通信框图

在触摸屏与单片机数据通信时,可能会产生很多未知的问题。有时它们之间的发送和接收的数据可能会发生错乱。为了更好地实现他们之间的通信,根据RS485 通信的特点,用计算机串口调试助手来保存并监控数据通信过程,进而分析单片机与触摸屏之间的PPI 协议实现。监控电路原理如图2 所示。通过MAX485 芯片把差分信号转换成RS485 信号,RS485 信号再通过MAX232 芯片转换成RS232 信号,并通过串口把RS232 信号送给PC 机。通过串口调试助手把读到的16 进制数据显示出来。

图2 PC 机监控电路原理

3 软件设计及调试方案

触摸屏里已经集成了PPI 协议,在编程时直接选择西门子S7 -200 系列PLC 为编程对象,而单片机里没有集成PPI协议,这里就要用单片机来仿做一个PPI 协议通信的过程。

前面已经介绍过PPI 协议的特点,就是主设备发送查询指令,从设备做出回应,从设备不主动发送任何指令。本研究中触摸屏主动发送指令,单片机对触摸屏每次发送来的指令进行判断,如果为正确指令则单片机做出相应的回应。当触摸屏得不到单片机的回应时,触摸屏会不断的发送查询指令。

单片机软件部分设计包含2 部分:一部分为通信程序,包括串口通信初始化、数据收发、中断处理3 个模块;另一部分为对旋转编码器的数据采集程序,包括外部中段初始化、中断处理。

串口通信程序流程如图3 所示。初始化模块完成串口的发送波特率、数据位个数等基本参数设定,并启动引脚串行通信模式;数据收发对数据完成收发的操作过程;中断过程完成对触摸屏指令的分析,以做出正确的回应。

图3 串行通信流程

读编码器的程序流程如图4 所示。初始化模块完成对外部中断的初始化、中断触发方式的设定;中断程序是对编码器发送来的脉冲信号做分析,判断是加还是减,并把响应数据赋给发送数据变量。

图4 读编码器程序流程

当单片机接收到触摸屏发送的数据时,单片机会进入串口终端程序。串口中断程序接收触摸屏发来的所有数据,并存入数组,调用验证函数进行数据验证,看格式是否符合,解析出触摸屏索要数据的类型及位置。如果数据格式正确就回复一个确认码E5H,若不正确就不做任何操作,等待重新接收数据。发送E5H 之后。触摸屏会返回一组数据,若为10H 02H 00H 5CH 5EH 16H,则把旋转编码器的数值赋给发送变量,并通过RS485 发送给触摸屏。最终数据在触摸屏上显示出来。

在整个数据通信过程中用上位机检测到的数据为:

1)触摸屏发送数据:16H 1BH 1BH 68H 02H 00H 6CH 32H 01H 00H 00H 00H 00H 00H 0EH 00H 00H 04H 01H 12H 0AH 10H 06H 00H 01H 00H 01H 84H 00H 03H 20H 8FH 16H。

2)单片机发送数据:E5H。

3)触摸屏发送数据:10H 02H 00H 5CH 5EH 16H。

4)单片机发送数据:68H 16H 16H 68H 00H 02H 08H 32H 03H 00H 00H 00H 00H 00H 02H 00H 05H 00H 00H 04H 01H FFH 04H 00H 08H 00H 00H 01H 10H 36H 16H。

以上为触摸屏通过PPI 协议读取一次数据的全过程,其中第4 次发送的数据第25 字节到第28 字节为读取的数据,高字节在前25 位,读得的数据为272。

[1]吴兴中,朱松林,彭新良.利用单片机实现对云台的控制[J].四川兵工学报,2011(3):71-73.

[2]郝莉,王东兴.PROFIBUS 从站与S7-200PLC 的通讯研究[J]. 北京机械工业学院学报:综合版,2000(2):45-49.

[3]李冬清.S7-200 系列PLC 与监控计算机通信实现方法[J].冶金动力,2005(5):91-92.

[4]李绍民,潘登.S7-200PLC 与上位机的通信[J].大连民族学院学报,2009(3):209-211.

猜你喜欢
西门子触摸屏字节
2.5D触摸屏盖板玻璃翘曲控制技术
No.8 字节跳动将推出独立出口电商APP
西门子(中国)有限公司
西门子(中国)有限公司
No.10 “字节跳动手机”要来了?
浅析投射式多点触控电容触摸屏
轻量级分组密码Midori64的积分攻击
皮肤“长”出触摸屏
浅谈西门子LOGO在空调新风机控制系统中的应用
50MW级SGT-800型西门子燃气轮机的性能验证