在现代工业控制中,最常用的人机接口界面依然采用的是键盘和液晶相结合的方式,要让触摸屏取代以前的人机接口界面,还存在一定的问题。在实际应用中,触摸屏一般是针对可编程控制器PLC 设计的,所以DSP 与触摸屏不能直接通信,必须根据触摸屏的通信协议开发相应的通信程序。本文研究基于MODBUS 协议的触摸屏和DSP 的通信方法,其中DSP 使用TI公司的TMS320F2812,触摸屏使用维控科技的LEVI700L。
1DSP与触摸屏的硬件电路连接
TI 公司的TMS320F2812 芯片有两组SCI 模块,SCIA 和SCIB。根据不同的需要,可以将这两个串口分别设计转换成RS232和RS485。本文采用RS485 实现DSP 和触摸屏的串行通信,RS485 通讯相对于RS232 通讯来说有抗电气干扰和传输距离远的优点,所以在工业控制现场,利用RS485 串口和触摸屏LEVI700L 进行通信。如图1 所示是将SCIB 口通过MAX3485芯片设计成半双工方式的RS485 接口,即数据可以在两个方向传输,可是不能同时传输。图中RE、DE 引脚为发送和接受使能端。DSP 通过将引脚PWM2(A1)口设置成通用数字I/O 口来控制使能端为1 或0,即接收或发送。A、B 引脚通过静电保护芯片PSM712连接到RS485 的接收端RS485A 和发送端RS485B。图中D1 和D3 发光二极管是为了监测DSP 正在接受或者发送数据。
触摸屏LEVI700L 带有一个DB9 串口, 支持RS232/RS485/RS422,其中2、3、5 用于RS232 通信,1、6 用于RS485通信。本设计中DSP 和触摸屏的通信采用RS485,因此,只需将图1 中的RS485A 和触摸屏DB9 口的1 引脚连接,RS485B 与6 引脚连接即可。
图1 RS485 串口通信电路设计
2 基于MODBUS 协议的通信程序设计
2.1 MODBUS 协议的主从编程方法
触摸屏和DSP 按照MODBUS 协议通信,将触摸屏作为主站,DSP 作为从站,串口连接采用RS485。触摸屏和DSP 的通信是有触摸屏发起的,DSP 采用中断方式响应触摸屏发送来的数据,非通信情况下DSP 可以做其它更多的工作。当触摸屏有数据发送给DSP 时,触发DSP 接收中断,DSP 进入接收中断服务子程序,此时,触摸屏发送给DSP 的是一个完整的数据帧,至少包含8 个字节的数据长度, 在完整读取这组数据后,DSP 对其进行处理。首先进行从设备站号匹配(本文中DSP 站号设为07),如果匹配不成功则DSP 不响应触摸屏的查询,DSP 不回送任何信息;如果匹配成功则进行CRC 校验,若CRC 校验出错,则查询失败,不返回数据信息;若CRC 校验正确,则进行下一步的命令解析,并返回给触摸屏对应的数据信息。
下面简要介绍如何从DSP 中读取几个模拟量并显示在触摸屏上,读可读写模拟量寄存器的功能码是03。
触摸屏发送的命令为:[设备地址] [功能码03] [起始寄存器地址高8 位] [低8 位] [读取的寄存器数高8 位] [低8 位][CRC 校验的低8 位] [CRC 校验的高8 位] 。
例如:07 03 00 03 00 02 34 6D。此命令说明要从DSP的起始地址为00 03 的寄存器中读取两个模拟量。
此时,若设备地址匹配且CRC 校验正确,则DSP 会返回数据给触摸屏。
DSP 返回的数据为:[设备地址] [功能码03] [返回的字节个数][数据1][数据2]…[数据n][CRC 校验的低8 位] [CRC 校验的高8 位]。
例如响应上面的命令返回的数据为:07 03 04 00 10 0020 9C 2E。说明返回的模拟量为16 和32。
2.2 触摸屏介绍及组态画面的设计
触摸屏LEVI700L 是维控科技生产的7 英寸真彩TFT,主板规格:RISC CPU 400MHz,128M Flash,64DDRAM。拥有一个DB9 串口,支持RS232/RS485/RS422 通信,另外包括一个USB Host 和一个USB Slave。
触摸屏LEVI700L 配套的组态软件为LEVI Studio,用户界面友好,易于操作,支持离线和在线模拟。本文以触摸屏在大功率晶闸管整流控制器中的应用为例,说明触摸屏的画面设计。主要有主界面、实时曲线查看整定画面、参数调节画面、工作模式查询画面,图2 给出主界面和实时曲线查询画面。可通过通讯口配置设置触摸屏和DSP 以及其他控制器进行连接,同时可选择相应的通信协议,本设计中采用Modbus 协议,串口参数设置为波特率:38400Kbps,停止位:1 位,数据位:8 位,无校验。另外还需要配置各个部件的地址。如图2 中反馈电压和电流的查看是个数字输入/显示部件,根据MODBUS 协议要对其读取地址进行编辑,使用功能码3 对其读数据。从上节中触摸屏发送数据的命令格式可知,需要设置DSP 的站号和寄存器的类型以及起始地址。
图2 触摸屏画面设计
2.3 从站DSP 程序设计
若要触摸屏和DSP 通信成功,在DSP 的串口初始化时就需要将串口参数设置的和触摸屏一致, 即波特率:38400Kbps,停止位:1 位,数据位:8位,无校验。一旦二者通信成功,触摸屏会根据部件设置向DSP 发送相应的数据命令, 如上节图2中的反馈电压和电流,触摸屏上需要显示从DSP中读出的数据,就会发送命令:07 03 00 03 0002 34 6D。DSP 接收到命令数据后的处理过程如图3 所示。
图3 数据通信流程图
从图3 可以看出,DSP 的程序设计主要包括初始化,接收和发送中断子程序,MODBUS 帧解析、处理及回应子程序,CRC 码验证子程序。其中接收和发送中断子程序的流程图如图4 所示。
图4 接收和发送中断子程序流程图
3 试验调试
DSP 和触摸屏的通信接口调试分步骤进行,包括:触摸屏串口测试、通信软件的调试以及触摸屏和DSP 通信的试验和调试。
1)触摸屏串口测试:首先在LEVI Studio 组态软件中编写画面程序并且利用数据下载线将其下载到触摸屏中,然后利用串口调试线将触摸屏和PC 机连接起来,通过串口调试工具可以查看到触摸屏不断向串口发送命令, 同时串口调试工具也可以编写正确的返回数据给触摸屏。此时需要注意的是必须将触摸屏的串口参数和串口调试工具的串口参数设置的一致才能通信成功。
2)通信软件的调试:利用串口线将DSP 电路板和PC 机连接,在CCS 中编写好C 语言程序后,利用仿真器和串口调试工具对主程序,数据接收和发送中断子程序,MODBUS 帧解析、处理及回应子程序,CRC 码验证子程序进行仿真调试。
3)触摸屏和DSP 通信试验和调试:通过上述两个部分的调试后,按照图1 所示的硬件连接线路将DSP 和触摸屏连接起来。在此之前,需要将调试好的组态画面程序下载到触摸屏中,C 语言程序固话到DSP 的Flash 中。最后,若通信成功,可从触摸屏中看到相关数据,如图5 所示a 为实时曲线图,b 为PID 参数调节图,其中给定电压、电流,PID参数可以在线修改,c 为权限设置界面,不同的工作人员权限不一致,在修改某些参数时需要输入密码。
图5 实验结果图
4 结束语
本文设计了基于MODBUS 协议的触摸屏和DSP 串行通信的硬件电路和软件程序,经过试验调试说明该系统通信稳定可靠,速率可达38400Kbps,实时性强。以大功率晶闸管整流控制器的应用为例,得出了相关的实验数据,说明本文设计的系统满足工业控制监测显示需要,同时由于触摸屏在人机界面领域的显著优势, 本文提出的设计思路也可应用于其他工业控制器的人机接口通信。