基于win32技术的PC与PLC实时通讯系统的研究

时间:2022-09-21 04:25:53

基于win32技术的PC与PLC实时通讯系统的研究

摘要: 本文介绍了上位机PC的串口通讯原理,同时给出了SIEMENS PLC的自由网络通信协议,提出了上下位机的软件设计方案,实现了PC通过PLC对工业现场数据的实时采集。实践证明整个系统运行稳定,采集数据及时准确。

Abstract: This article introduced the string mouth communication theory of pc, both free internet communications protocol of SIEMENS PLC, proposed the software design scheme of upper and lower machine, realized industry field real-time data acquisition of the pc through the plc. Practice has proved the system run stably and acquisition data is timely and accurate.

关键词: 实时通讯;自由协议;串口通讯;实时数据;PLC win32

Key words: real-time communication;free agreement;serial communication;real-time data;PLC win32

中图分类号:TP31 文献标识码:A文章编号:1006-4311(2010)26-0155-02

0引言

可编程逻辑控制器(PLC)是一种广泛应用于工业环境的新型数字运算操作的电子装置。它采用可以编制程序的存储器,用来在执行逻辑运算、顺序运算、定时计时和算术运算等指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。随着工业现代化的不断发展,在自动控制领域,PLC被广泛应用,在某些测控领域,系统需要实时采集很多的工业现场数据,例如,压力,温度,流量等,需要采集的参数多,处理逻辑复杂,并能够根据数据处理的结果反馈给现场,实时性要求高。本文提出的上下位机实时通讯技术方案具有很大的实际应用价值和意义。

系统结构:基于win32的PC与PLC实时通讯系统的核心由两部分组成:上位机选择PC作为主站,而PLC选择西门子S7-200作为下位机,PLC为从站。

PC是通过交换机和串口服务器与下位的PLC进行连接的。串口服务器是一种基于Modbus/TCP通讯协议转换器。它可以将串口设备接入采用Modbus协议的网络,让串口设备支持Modbus/TCP协议支持一个以太网和RS-232C/485口来连接各种类型的支持Modbus协议的设备。通过Modbus/TCP和Modbus/ASCII/RTU协议转换,PLC可以使用外部端口与PC实现无缝通讯。本文介绍的西门子S7-200带有两个RS485通讯口,而上位机PC的串行口是RS232,所以采用西门子公司专用的PC/PPI编程电缆作为上下位机的连接电缆,它实现了RS232与RS485的转换,并且具有很好的隔离抗干扰功能。

通讯原理:S7-200自带的通讯口RS485采用半双工通讯,只需用两根数据线来发送接收数据,所以在通讯过程中没有硬件握手信号,所以用软件握手通讯方式保持通讯数据的同步,为了保证通讯的安全性,在PLC自由口模式下,自己组织通讯指令的格式,并在通讯帧中加入帧校验码(BCC)。方法是:在通讯的数据帧按照字节进行异或运算,之后把计算的结果追加在帧数据的后边一起发送,接收方接收到数据后进行同样的运算操作,并把就算的结果与BCC比较,如果两者不相等,则表示数据传输出错,接收方返回错误状态信息,并等待发送方的下一次发送。

系统的实现

由于系统采用自由模式下,通信协议由用户自己定义,每个通讯过程都是上位机主动发出操作指令,若上位机没有发出操作指令则PLC不返回数据。

1通讯协议的定义

计算机向PLC写数据指令组成

起始和结束标志分别为:start,end;不同的从站PLC可以定义为不同的起始和结束标志位就收针对本站的指令。

操作类型type包括两种:”W”和“R”分别表示读和写操作指令。

目标plc地址plc;每个PLC都有自己唯一的编号,用于区分不同的从站。

目标寄存器地址address;用于指定本帧操作指令的PLC内存地址。

读/写字节数num;

写入的数据values;读指令此为值任意。

BCC校验码bcc。

PLC返回数据指令组成

起始和结束标志分别为:start,end;操作结果标志state;数据区values;BCC校验码bcc。

2上位机控制流程

在windows环境下实现上位机与工业PLC通讯,主控PC程序是在Microsoft Windows操作系统下,通过Visual C++6.0开发环境,采用面向对象的程序设计方法实现的。作为面向对象编程语言的代表,Visual C++不仅具有C语言的一切优点之外,而且它也是Microsoft Visual Studio开发组件中最强大的编程工具。一方面Visual C++是当今最流行的系统级开发语言,另一方面,它能够和Microsoft的操作系统无缝结合,开发出高效灵活的Windows应用程序。在Microsoft Windows操作系统中,串口作为文件处理,所以利用Microsoft Visual C++ Version 6.0所提供的kernel32.lib,在Win32平台下通过文件操作技术使用串口。首先上位机通过CreateFile函数创建串口句柄,之后初始化与PLC通讯的串口,设置串口通讯参数,在事件驱动下上位机通过初始化的COM口发送指令到下位机PLC的PORT口。

计算机首先进行串口的初始化,之后主动向PLC发送通讯请求,被呼叫的PLC接到通讯请求后返回可以通讯指令。上位机接受到可以通讯指令后开始向PLC传送数据指令。等待PLC返回的数据指令,如果返回成功标志,此次通讯完了;如果返回失败标志,则重发。流程如下图2

上位机软件设计:

上位机程序采用定时精度ms级的多媒体定时器触发,首先把Winmm.lib和Mmsystem.h添加到工程中,函数原型说明如下:

……

MMRESULT timeSetEvent(

UINT uDelay,

UINT uResolution,

LPTIMECALLBACK lpTimeProc,

DWORD dwUser,

UINT fuEvent

);

……

uDelay:事件的延时,微妙计;

uResolution:计时器事件的分辨率,微秒计;

lpTimeProc:回调函数的地址;

dwUser:回调数据;

fuEvent:定时器类型,包括两种:

a.TIME_ONESHOT表示uDelay后发生一次事件。

b.TIME_PERIODIC表示每过uDelay毫秒事件发生一次。

3下位机PLC控制流程

工业现场的智能仪表或者传感器传出的实时数据直接或间接传入下位机PLC,并通过PLC的A/D转换模块,把现场采集来的模拟信号转换成可以进行逻辑运算处理的数字信号,并保存在PLC的指定内存中。

下位机软件设计思想是:下位机(PLC)首先选择自由端口通讯模式,制定与上位机响应的通讯协议格式,使PLC处于接受通讯数据状态,并通过RCV指令接收上位机发来的指令,然后对指令进行译码,译码后调用相应的读写子程序实现上位机指令要求的操作,同时组织好下位机的返回信息,然后PLC通过XMT指令返回上位机指令执行的状态信息,以及上位机想要的实时数据。流程如图3。

下位机PLC软件设计:

主程序:根据SM0.1调用系统初始化子程序,根据接收到的上位机命令调用相应的读写子程序,同时调用上位机指令校验子程序。部分程序如下:

LD SM0.1 //开机只执行一次

CALL Initialize:SBR3 //调用初始化子程序。

LDB=VB134,VB199

AB=VB102,'R'

AM0.0

CALL Read:SBR0//解析为读操作并调用读操作子程序。

……

子程序Initialize:初始化串口子程序,并且开中断;部分程序如下:

LD SM0.0

MOVB 9, SMB30 //自由口通信选择、定义波特率和校验类型等.

LD SM0.0

MOVB 16#EC, SMB87

MOVB 'S', SMB88

MOVB 'E', SMB89

MOVW +1000, SMW92

MOVB 35, SMB94

RSM87.2, 1

//定义通讯指令格式以及参数等。

……

子程序Read:读PLC子程序;

子程序Write:写PLC子程序;

子程序Verify:PLC对上位机发送的指令进行校验;

子程序RCVcomplete:RCV指令接收完上位机指令后调用的指令解析子程序;

子程序XMTcomplete:PLC发送返回数据后的系统清理程序;

4结论

本文介绍的利用上位机VC++和下位机西门子S7-200通过串口通讯的技术,实现了上位机PC与下位机PLC之间的实时通讯。本文实现了最简单的上下位机实时通讯的过程,实际的测控领域中还有许多需要解决的细节问题。

参考文献:

[1]李现勇.Visual C + +串口通信技术与工程实践[M].北京:人民邮电出版,2002.

[2]余雷声.电器控制与PLC应用.北京:机械工业出版社,1996.

[3]Junzhou Luo,Wei Li,Bo Liu.Distributed Network Self-management Model Based on CSCW.The 9th International Conference on Computer Supported Cooperative Work in Design Proceedings,2006.

[4]何默为,刘永贤.上位机与PLC远程通信实现动态数据采集研究[J].机械与电子,2007(4).

[5]Shenglei Chen, Huizhong Wu, Xianglan Han, Liang Xiao.Collaborative Design Environment based on Multi-Agent.The 9th International Conference on Computer Supported Cooperative Work in Design Proceedings 2006.

[6]Kweon S.K.,Shin K.G.,Zheng Q..Statistical real-time communication overethernet for manufacturing automation systems.IEEE Real-Time Technology and Applications Symposium,June 1999.

上一篇:示范建设背景下应用电子技术专业人才培养模式... 下一篇:城市道路照明节电技术探讨