上位机与Omron PLC通讯的实现及在清洗设备中的应用
2015-05-18侯为萍
侯为萍
(中国电子科技集团公司第四十五研究所,北京101601)
上位机与Omron PLC通讯的实现及在清洗设备中的应用
侯为萍
(中国电子科技集团公司第四十五研究所,北京101601)
介绍了上位机与PLC通讯系统的组成、基本原理以及通讯协议,详细讨论了基于VC++的上位机与欧姆龙 (Omron)PLC实时通讯系统的具体实现过程,并在槽式清洗设备中进行了应用,实践表明,这种通讯系统经济可靠,性价比高,简单易行。
上位机;PLC;通讯
可编程序控制器 (Programmable Logic Controller),简称PLC,它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。PLC具有编程简单、使用方便、抗干扰能力强,故障修复时间短、维护方便、接口功能强等优点,因此在湿法类的槽式清洗设备中得到了广泛应用。
本研究中考虑到客户的实际需要,设备操作区域在净化间,净化间与灰区有隔断,需要具备在灰区能够实时监控设备的状态、下载和上传工艺参数的功能,因此提出了本文中所述的通过上位机与Omron PLC通讯来实现此功能要求的方法。
1 上位机与PLC通讯系统的组成及基本原理
本设计中通讯系统主要由上位机 (计算机)、PLC和连接电缆组成,计算机与PLC之间采用串口通讯。由于OMRON PLC本身带有RS-232接口,因此,在RS-232电缆与计算机之间直接用三线制连接。要实现上位机与PLC间的通信,欧姆龙CJ系列PLC与上位机通讯可以采用上位链串行通信模式。进行上位链接通信时,上位机与PLC间使用命令和响应进行发送接收。而命令与响应都是以“帧”为单位进行的。首先,上位机向PLC发送一定的指令,同时把发送权移交给PLC,PLC接收到上位机的指令后,进行FCS校验,FCS校验就是把从一帧的开始到FCS前面的数据进行逻辑异或得到的8位数据变换成2个字符的ASCII码,对接收信息的各帧计算FCS,并同时附加在帧后的FCS进行对照校合,就能检查数据错误。数据正确后再由PLC向上位机发送响应,这样就完成了一次通讯,若通讯成功则执行相应的操作[1-2]。
2 通讯协议
2.1 上位机与PLC的通讯协议
HOST Link系统使用HOST Link通信协议进行通信,上位机具有传送优先权,总是首先发出命令并启动通信,HOST Link通信单元收到命令交由PLC执行,然后将执行结果返回上位机,两者以帧为单位轮流交换数据。
2.2 上位机的PLC链接通讯
通信时一组传送的数据称为块,它是命令或响应的单位,从上位机发送到HOSTLink单元的数据称为命令块,相应的,从HOSTLink单元发送到上位机的数据称为响应块。多点通信时,单帧发送的最大数据块为131个字符,因此当一个数据块含有132个或更多字符时,要分成两帧或多帧进行发送。多帧发送时中间帧的格式为:正文、FCS、分界符。起始帧、中间帧的长度为131,结束帧的长度最多为131个字符。
Omron系列的PLC通过RS232口与主机通信有两种方式,第一种是由上位机向PLC发送初始命令,第二种是由PLC向上位机发送初始命令。本设计中采用第一种方式。有关通信协议如下所述。
2.2.1 上位机→PLC的命令格式
如图1所示,其中:@为起始标志符,表示以@开始;“设备号”为PLC节点标志码,是上位机用来识别所连接PLC的唯一号码。PLC自己的通信节点码可由它的DM6648和DM6653来设置;“识别码”为命令码,设定为两个字符的长度;“正文”为命令内容,用来设置具体的命令参数;“帧检查序列”设定为两个字符的帧校验码,如果通信出错通过计算此校验码,就可以及时发现[3]。“终端”中“*”和“CR”两字符表示命令结束。
图2 响应格式
2.2.2 PLC→上位机的响应格式
如图2所示,其中:“结束码”为命令结束状态码,返回命令的执行状态(有无错误),如00表示正常结束,01表示RUN模态下PLC无法完成上位机命令。“正文”为命令内容,在有读出数据时返回。其余符号代码意义同上。
图1 命令格式
3 基于VC++6.0的通讯实现
实现上位机与HOST Link通信单元的通信只需编写上位机程序,因为HOST Link通信单元自身带有通信程序,上位机下发命令,地址相应的PLC自动上传响应帧,但是,编写上位机的通信程序时,通信参数的设置必须保证与PLC的通信参数一致。
3.1 串口的初始化
Windows系统对通信功能的支持非常强,它增加了一系列用于通信的API函数供用户调用。同样,要进行串行通信,也需要先对串口进行初始化。Windows系统把串行口作为设备文件,对串口操作就是对文件操作。因此,必须先为串口分配1个文件句柄,以后对串口操作都将通过这个文件句柄来完成。初始化过程为:调用CreateFile函数为串口分配1个文件句柄m_hPort;调用SetupComm函数设置串行口的输入和输出缓存区;填充1个DCB结构来设置通信参数,通过调用GetCommState函数获得当前系统的DCB(设备控制块)结构,按需要赋值给DCB的成员,如波特率、奇偶校验、数据位、停止位等,最后将创建后的DCB结构作为参数传给SetCommState函数完成初始化串口。
3.2 发送和接收串口数据
串行口的初始化完成后,需要根据通信协议来发送和接收串行口上的数据。WriteFile函数用于发送数据,ReadFile函数用于接收数据。
接收数据的自定义函数如下:
发送数据的自定义函数如下:
3.3 通讯实现
上位机与PLC的通讯程序流程图如图3所示。串口初始化之后需发送请求信号,得到正确响应后向PLC发送控制字符,PLC返回应答后做相应的数据处理。根据前面介绍的通信协议,按照图3的通讯流程,调用接收和发送的函数,即可完成串行通信。例如需要读取节点为0的PLC的DM0600中数据,则编写代码如下:
part中为读到的串口数据,对该数据进行校验成功后,做相应的数据处理即可。
4 该系统在槽式清洗设备中的应用
图3 上位机与PLC通讯流程图
本研究利用 Visual C++的强大功能,在Windwos环境下设计了上位机与PLC的实时通讯系统,并将该系统成功应用于槽式清洗设备中,通讯部分界面如图4和图5所示。其中图4可以实时显示系统各状态,满足客户在灰区能够实时监测系统状态的需求,图5为本系统中其中一个槽体的参数设置界面,其他槽体的参数设置界面与之类似。在此界面可以设置槽体的各项参数,并且可以将设置好的参数下载到PLC,也可以将PLC中的各参数上传至此界面。
通过对此槽式清洗设备的运行情况进行观察、分析,结果表明,本研究设计的通讯系统性能可靠,结构简单,实用性强,充分满足了客户的实际需求,为今后此类需要在灰区实时监控设备状态的槽式清洗设备提供了很好的借鉴作用。
图4 系统状态显示界面
图5 槽体参数设置界面
[1] 曾昆.基于VC下的一种微机与PLC的简易通信实现[J].电气传动,2004(1):48-49,55.
[2] 杨东海.基于VC和MFC的上位机与PLC的通讯系统[J].微计算机信息,2003,19(3):12.
[3] 严航明.基于HostLink协议实现欧姆龙PLC-CJ1G与
计算机的串口通信[J].数字技术与应用,2011(12):1-3.
Realization of Communication System between Host-computer and OMRON PLC and Its Application in Cleaning Equipment
HOU Weiping
(The 45th Research Institute of CETC,Beijing 100176,China)
This paper introduces the composition,fundamental principles and communication protocol of the communication system between host-computer and PLC,and the realization of communication system between host-computer and OMRON PLC based on VC++is discussed in detail,which is applied in the Tank Cleaning Equipment.The result indicates that the communication system is economical,credible,simple,and practicable.
Host-computer;PLC;Communication
TN305.97
:A
:1004-4507(2015)08-0019-05
侯为萍(1983-),女,工程师,硕士学位,主要从事电子专用设备的软件研发工作。
2015-07-15