PLC本质上是一种专用于工业控制的计算机,使用可编程存储器储存指令,并通过模拟或数字I/O组件,控制各种机械或生产过程的装置。而HMI(Human Machine Interface)连接可编程序控制器(PLC),利用显示屏显示,通过输入单元(如触摸屏)写入工作参数或输入工作命令,实现人与机器之间的信息交互。接下来介绍迪文DGUS Ⅱ触摸屏与欧姆龙PLC通过Hostlink协议实现通讯的软、硬件连接说明。
产品型号:DMT85480C050_07WT
欧姆龙PLC:CP1E-N40
分辨率:850*480
https://v.qq.com/x/page/y078785uefm.html?pcsharecode=5gfNglcD&sf=uri
视频中选用了基于T5 CPU的迪文DGUS Ⅱ触摸屏,65K色TFT显示。其中,I/O接口总数达76 个,最高速度100MHz,+/-4mA驱动能力,具有高可靠性数据库和强大的数据库管理接口。而CIO区包含PLC的外部硬件输入和输出,用作控制I/O点的数据,也可以用作内部处理和存储数据的工作位。DM区即动态数据存储区,可以把采集到的模拟量,数字量数据存放在这里,之后可以进行后期复杂的数据处理等。基于T5 CPU完善的数据库管理,DGUS Ⅱ产品在实际应用过程中具备很强的数据处理能力。
产品型号:DMT10600T070_A5WTC
欧姆龙PLC:CP1E-N40
分辨率:1024*600
https://v.qq.com/x/page/j0787kq2d5i.html?pcsharecode=ufCVIvmN
视频中选用了型号为DMT10600T070_A5WTC的DGUS Ⅱ触摸屏,该产品是一款7寸高分辨率,工业级智能HMI,接口丰富,防水防UV,室内和室外均可使用。户外使用防眩光,外壳高低温不变形。屏幕为电容式触摸屏,可实现滑动翻页,手势调节数据等功能,触控效果好,灵敏度高,带来精彩的人机交互体验。
迪文T5屏幕通过串口与欧姆龙CP1E-PLC连接,通过Hostlink协议实现通信,本次使用欧姆龙PLC内置的自带串口或使用扩展板接口。
PLC端内置端口为DB9母头,接口定义如下表格。CP1WCIF01接口定义同内置端口。
表1 接口定义
1 |
FG |
框架接地 |
2 |
SD(TXD) |
发送数据 |
3 |
RD(RXD) |
接收数据 |
4 |
RS(RTS) |
请求发送 |
5 |
CS(CTS) |
清除发送 |
6 |
5V |
电源 |
7 |
DR(DSR) |
数据设备准备 |
8 |
ER(DTR) |
数据终端准备 |
9 |
SG(0V) |
信号接地 |
4)J1/J2的段子方块端子序号为1,从左到右一次1—6;
表2 J1及接口定义
1 |
TXD |
2 |
RXD |
3 |
GND |
4 |
+24V |
5 |
未使用 |
6 |
未使用 |
表3 J2及接口定义
1 |
TXD |
2 |
RXD |
3 |
GND |
4 |
+5V |
5 |
+5V |
6 |
+5V |
迪文T5屏幕串口2默认波特率115200,8,1,N;PLC配置通讯参数与屏幕参数相同,所以迪文T5屏使用默认配置,串口配置详细参数请修改T5UID2.CFG文件,T5UID2.CFG配置请参考文档“T5UID2应用指南.PDF”。
1)请到欧姆龙官网下载CX-ONE软件,安装好后,打开CX-Programmer,界面如下图:
2)点击文件,新建,如下图:
3)弹出如下图:选择N40
4)确定后,进入工程编辑页面,如下图:
5)再在左侧工程栏双击设置,选择“内置RS232C端口”,或 “串行选项端口”,由于参数完全相同,这里只对“内置RS232C端口”介绍
6)具体通讯参数设置如下:
1)点击PLC,在线工作,弹出对话框后,点击确定
2)连接成功后再左侧工程框会显示监视模式或运行模式,如下图:
3)下载设置选择蓝色选项,如下图:
4)弹出对话后,只勾选设置选项,点击确定,如下图:
之后弹出的所有对话框都点击是或确认。
至此,PLC设置完毕。
读指令:RD;写指令:WD;
(1)RD指令格式如下:
帧头 |
单元号 |
读命令 |
寄存器首地址 |
读取寄存器个数 |
XOR校验 |
结束字符 |
@ |
00 |
RD |
0009 |
0002 |
5D |
*/CR |
说明:
帧头:@固定,1个字节;
单元号:PLC上 设定,2个字节;
读命令:固定,RD(DM区),RH(H区),RR(CIO区)等,2个字节;
寄存器首地址:DCB码表示,4个字节;
读取寄存器个数:BCD码表示,4个字节;
XOR校验:前边所有数据XOR运算,2个字节;
结束字符:*/CR,固定,/CR用0x0D,2个字节;
发送数据长度:17;
(2)发送读指令后,PLC响应格式如下:
帧头 |
单元号 |
读命令 |
错误码 |
读取数据 |
XOR校验 |
结束字符 |
@ |
00 |
RD |
00 |
读取寄存器个数*4 |
XX |
*/CR |
说明:
错误码:00表示接收数据正常;
接收数据长度:11+读取寄存器个数*5
(3)WR指令格式如下:
帧头 |
单元号 |
读命令 |
写寄存器首地址 |
写入的数据 |
XOR校验 |
结束字符 |
@ |
00 |
WD |
0009 |
0066 |
XX |
*/CR |
说明:
帧头:@固定,1个字节;
单元号:PLC上设定,2个字节;
读命令:固定,WD(DM区),WH(H区),WR(CIO区)等,2个字节;
写寄存器首地址:DCB码表示,4个字节;
写入的数据:BCD码表示,4个字节;
XOR校验:前边所有数据XOR运算,2个字节;
结束字符:*/CR,固定,/CR用0x0D,2个字节;
发送数据长度:17;
注:这里只做写入一个DM寄存器的演示,如需写入多个DM寄存器(连续),连续写入几个,在首地址后增几个数据,每个数据4字节长度;
(4)PLC程序:
PLC编写程序此段程序的母的测试OS是否正确,由于PLC内部DM区只有通过软件监视才能直观得监测DM区的值,不方便演示效果,这里通过PLC的输出间接的测试OS是否正确程序说明如下:
DM区读取测试程序段:上电将100赋值到D9,101赋值到D10,触摸屏上电后,读取DM区数据。
DM区写入测试程序段:
在“DM区演示”页面D9输入102或104,若写入PLC正确,则100.00输出,PLC对应指示灯点亮,D10输入103或105,若写入PLC正确,则100.01输出,PLC对应指示灯点亮。
(5)演示效果视频如下:
https://v.qq.com/x/page/y078785uefm.html?pcsharecode=5gfNglcD&sf=uri
3.2 读写CIO区指令
读指令:RR;写指令:WR;CIO区包含PLC的外部硬件输入和输出;
(1)CIO区读指令同DM区读指令类似,需将RD指令更改为RR即可,格式如下:
帧头 |
单元号 |
读命令 |
寄存器首地址 |
读取寄存器个数 |
XOR校验 |
结束字符 |
@ |
00 |
RR |
0010 |
0001 |
XX |
*/CR |
(2)发送读指令后,PLC响应格式如下:
帧头 |
单元号 |
读命令 |
错误码 |
读取数据 |
XOR校验 |
结束字符 |
@ |
00 |
RR |
00 |
读取寄存器个数*4 |
XX |
*/CR |
(3)WR指令格式如下:
帧头 |
单元号 |
读命令 |
写寄存器首地址 |
写入数据 |
XOR校验 |
结束字符 |
@ |
00 |
WR |
0010 |
0003 |
XX |
*/CR |
说明:
帧头:@固定,1个字节;
单元号:PLC上设定,2个字节;
读命令:固定,WD(DM区),WH(H区),WR(CIO区)等,2个字节;
写寄存器首地址:DCB码表示,4个字节;
写入的数据:BCD码表示,4个字节;
XOR校验:前边所有数据XOR运算,2个字节;
结束字符:*/CR,固定,/CR用0x0D,2个字节;
发送数据长度:17;
注:这里只做写入一个CIO寄存器的演示,如需写入多个CIO寄存器(连续),连续写入几个,在首地址后增几个数据,每个数据4字节长度;
(4)PLC程序:
PLC编写程序此段程序的母的测试OS是否正确,由于PLC内部CIO区只有通过软件监视才能直观得监测DM区的值,不方便演示效果,这里通过PLC的输出间接的测试OS是否正确程序说明如下:
上电后触摸屏读取CIO10.00的状态,由于只有开和关两种状态,所以以图标的形式显示在触摸屏,开时触摸屏LED1显示“绿色”,关时触摸屏显示“红色”,当在触摸屏按下按钮时,触摸屏读CIO10的16位状态,根据对应位取反后写入到触摸屏,演示效果为按下LED1,PLC的100.02输出;
读指令:RH;写指令:WH;
H区与CIO区相同,只需将对应指令更改为RH,WH即可,演示效果见视频。
1)PLC程序:
上电后触摸屏读取H0.00的状态,由于只有开和关两种状态,所以以图标的形式显示在触摸屏,开时触摸屏LED3显示“绿色”,关时触摸屏显示“红色”,当在触摸屏按下按钮时,触摸屏读CIO10的16位状态,根据对应位取反后写入到触摸屏,演示效果为按下LED3,PLC的100.04输出;
QQMR指令需要和QQIR配合使用,在发送完成QQMR后,发送QQIR指令后等待PLC回复数据。该指令可以读取一次行读取H区/DM区/CIO区的状态,这里,将前三个演示所用的到的寄存器都读取上来,并显示到屏上,包括D9,D10,CIO10,H0.
1)QQMR复合读指令数据格式:读D9和CIO10
帧头 |
单元号 |
读命令 |
寄存器种类 |
寄存器地址 |
控制字 |
寄存器种类 |
@ |
00 |
QQMR |
DM00 |
0009 |
CH, |
CI00 |
寄存器地址 |
控制字 |
XOR校验 |
结束字符 |
|
||
0010 |
CH, |
XX |
*/CR |
发送完QQMR指令后,发送QQIR指令,之后不需要在发送QQMR指令,
QQIR指令固定为:@00QQIR5B*/CR,其响应格式如下:
次指令的没帧响应我们只需处理“,”之前的四个字节数据和FCS之前的四个字节数据即可,第一个逗号之前到结束分别对应QQMR指令发送的寄存器;
注:详细的工程以及软件说明见压缩文件《欧姆龙PLC工程》。