基于VC_6_0的PC机与PLC串口通信的实现及其应用 (1)

第29卷第3期 李子彬,等:基于VC++6.0的PC机与PLC串口通信的实现及其应用位值上传给PC机。PC机接收到数据后,对数据进行处理以及显示。PID控制器的输出实时发送给PLC,由PLC通过EM235模拟量I/O模块控制电磁阀的开度,对水的流量进行控制,使液位稳定在设

基于VC_6_0的PC机与PLC串口通信的实现及其应用 (1)

定值。

193

手信号,PLC接收到握手信号后,发送回握信号;上位机收到回握信号,则开始发送请求指令,PLC收到指令后,校验数据,正确则发送数据给上位机,错误则要求重发;上位机收到数据进行校验,出错则要求PLC重发,正确则进行数据处理。上、下位机流程图如图2所示。

图1 系统结构图Fig.1Structureofthesystem

2 通信方案选择

S7 200系列PLC支持多种通信协议,有PPI协议,MPI协议,PROFIBUS协议和用户定义协议(自由口协议),其中MPI协议和PROFIBUS协议需要网卡或者DP模块,用户自定义协议则不需要,并且用户可通过编程控制S7 200CPU通信口的操作模式。通过程序配置,可以与任何您需要的任何设备进行灵活地进行通信。因此我们采用PLC自由口通信模式。

开发串口通信应用程序,上位机软件通常采用两种方法:一种是使用软件开发工具提供的控件,另一种是利用WindowsAPI函数。通信控件的工作原理类似中断方式,当有通信事件发生时(如发送或接收数据就会触发OnComm事件),在该事件的处理函数中调用GetCommEvent()函数,通过返回值确定是哪类事件,再做出相应的处理。所以通信控件在串口编程时十分方便,程序员不必花费时间去了解十分复杂的API函数,就能通过串行口接收和发送数据。因此采用控件的方法开发通信程序。

图2 系统流程图Fig.2Systemflowchart

3.2 PC机软件设计

在Windows环境下,使用串行通信控件,只需要设置和监视控件的属性和事件,就可以实现串行通信。MSCOMM控件提供两种处理通信的方法:一种是事件驱动方法;另一种是查询法。在使用事件驱动法设计程序时,每当有新字符到达或端口状态发生变化,即使发生错误,都会触发OnComm事件,这种方法程序响应及时,可靠性高。查询法是应用程序完成某一串行口操作后,将不断检查端口事件,这种方法适合小的应用程序的开发,占用内存较大。本文采用事件驱动的方法。

3.2.1 PC机软件实现

本文利用VC++6.0提供的MSComm控件实现了与PLC通信的上位机控制软件。MSComm控件需要手动添加完成,首先建立一个基于对话框的应用程序,然后在Project菜单中选择"AddtoPro

3 系统软件设计

3.1 系统流程

基于VC_6_0的PC机与PLC串口通信的实现及其应用 (1)

基于VC_6_0的PC机与PLC串口通信的实现及其应用 (1)相关文档

最新文档

返回顶部