西门子可编程控制器在隧道交通控制中的应用

2022-11-13

要解决监控计算机和PLC的通信问题, 首先应选择适合系统的通信方式。在PLC控制网络中, 常见的通信方式有:“周期I/O方式”通信、“全局I/O方式”通信、主从1:N通信方式、令牌环通信方式等等。本设计在监控系统中采用1:N“I/O周期扫描”的PLC网络通信方法, 即把个人计算机连入P L C控制系统中, 计算机是整个控制系统的超级终端, 同时也是整个系统数据流通的重要枢纽。通过设计针对该系统的监控软件, 可以实现对PLC系统的数据读写、动态数据检测, 保存历史记录等功能。这种通信方式主要是根据设计的隧道相对较短、风机照明灯数量较少、PLC控制点数不多、通讯控制场所范围较小的特点选定的。

要实现PLC的联网控制, 就必须遵循一些网络协议。不同公司的机型、通信软件各不相同, 这就是我们对系统进行软件配置的意义所在。软件一般分为两类:一类是系统编程软件, 用以实现计算机编程, 并把程序下载到PLC, 且监控PLC的工作状态。另一类为应用软件, 各用户根据不同的开发环境和具体要求, 用不同的编程语言编写的通信程序。本文P L C编程采用的是西门子公司的STEP 7-Micro/WIN软件。上位机人机界面和通信程序的开发是在delphi7.0下完成的。

只有软、硬件都设置成功后, 才能实现上位机和PLC的实时通讯。

1 PLC与PC机的物理连接

PLC上配有RS485接口, 与上位计算机的RS232接口相连需要一个转换器。采用西门子公司RS232/RS485通信电缆 (PC/PII电缆) 本身能够完成RS232与RS485的隔离转换。数据传输时的速率通过电缆盒上的DIP开关进行设置, 其波特率可为600bit/s~38400 bit/s。当数据从RS232传送到RS485口时, PC/PPI电缆为发送模式;当数据从RS485传送到RS232口时, PC/PPI为接收模式。当检测到RS232的发送线有字符时, 电缆立即从接收模式转换到发送模式。以上这些都由硬件来完成, 无需软件参与。

S 7系列P L C的P P I协议、M P I协议与PROFIBUS协议属西门子内部通信协议, 西门子公司对其协议保密, 但其提供了一个自由口, 用户可以自己编制程序定义通信协议。因此, 本设计利用西门子S7-200 PLC的串行通信口, 自定义通信协议和指令格式, 用PC/PPI电缆连接计算机和PLC, 可以实现两者之间的通信。当S7-200 PLC连接的智能设备具有RS485接口时, 可以直接通过双绞线进行连接。因此, 采用自由口通信方式可以使控制系统配置更加灵活、方便, 即在监控过程中要实现自由模式下上位机和S7-200 PLC的通信。

2 编写通信程序

本监控系统软件采用Delphi高级语言编程, 能够及时准确地对隧道风机及照明设施实行监控。串行通信作为上位机和下位机联系的桥梁, 因此上位机通信模块设计在整个监控程序占有非常重要的地位。

用Delphi实现串口通信, 最常用的办法是使用控件 (如M S C O M M见图1等) , 利用MSCOMM控件开发串口通信程序, 只需设置相关的属性, 使用相关的方法与相应的事件, 实现串口通信较为简单方便。本系统中上位机的信息管理及监控软件运行在WindowsXP操作系统下, 并利用MSCOMM控件开发设计了上位机与PLC的串行通信程序, 对隧道运行状态进行监控。MSCOMM32控件的主要属性、方法及事件如下。

CommPort属性:用于设置或返回通讯端口号。计算机的串行通讯端口一般有COM1和COM2两个, 必须在打开端口以前设置该属性。如果设置的端口不存在, 运行时会产生设备无效错误。

CommEvent属性:返回通信事件或错误。

Setting属性:设置并返回初始化参数, 即波特率、奇偶校验、传输数据位和停止位。

InputMode属性:设置或返回接收到的数据的类型。缺省为ComInputModeText表示以文本 (A S C I I码) 形式接收数据, 而ComInputModeBinary表示以二进制形式接收数据。

Input属性:返回并删除接收缓冲区中的数据, 在设计时Output属性:向输出缓冲区中写入数据, 在设计时无效, 运行时为只读。

Output属性:向输出缓冲区中写入数据, 在设计时无效, 运行时为只读。

PortOpen属性:设置并返回通信端口开或关的状态, 运行时有效。

CommInit方法:初始化并打开指定的串口。

RecvData方法:接收数据。

SendData方法:发送数据。

ComOpenOrClose方法:打开或关闭串口。

OnComm事件:当CommEvent属性的值发生变化时, 就产生此事件, 标志发生了一个通信事件或错误。

通信模块作为上位机和PLC交换数据的平台, 具有十分重要的作用。通信模块的设计主要包括几个方面: (1) 串口初始化。串口初始化包括设置通信协议、输入输出缓冲区大小等内容。 (2) 数据的接收和发送以及校验。上位机首先发出命令给PLC, PLC从串口输出缓冲区内接收数据, 然后PLC自动发送一个响应帧, 上位机检测到输入缓冲区的数据开始接收数据。命令帧的格式为站号、读/写操作类型、发送数据、校验码、结束字符。响应帧的格式为站号、接收数据、校验码、结束字符。为了保证通信数据的正确性, 上位机对接收到的数据需要进行校验, 校验是通过一个B C C校验函数来进行。B C C校验码就是将要传送的字符串的ASCII码以字节为单位作异或运算, 并将异或运算结果作为指令的一部分传送出去。 (3) 数据转换。由于PLC在发送数据时, 有些模拟量数据, 如管网压力和电机转速, 采用的是二进制的形式, 在计算机接受到数据之后必须进行转换, 方能正确显示。 (4) 错误处理和报警。对于传输过程中可能出现的各种错误, 需要采取相应的处理措施, 不可恢复的严重错误必须报警。

用delphi实现串口通信的源代码及程序解释见附录。

3 PLC通信程序设计

本系统采用的PLC是德国SIEMENS公司生产的S 7-2 0 0系列, 主模块采用CPU226, S7-200系列CPU主要支持的几种协议前文已经详细介绍。P L C作为控制系统中的下位机, 不主动发送数据而是被动的响应上位机的命令, 根据上位机的指令进行数据发送和接收。PLC中的通信程序由主程序和二个中断组成, 通信程序的流程如图2所示。

3.1 通信初始化子程序

PLC在第一次扫描时执行通信初始化子程序, 对端口及RCV指令进行初始化。初始化完成后, 使端口处于接收状态。RCV指令将接收到的数据保存到接收缓冲区, 同时产生接收完成中断。PLC每接收到一条指令后都会发送一条反馈信息, 发送完成后产生发送完成中断。程序中使用的标志位含义约定如下。

3.2 接收子程序 (Send)

3.3 发送子程序 (Send)

在PLC接收到上位机的读取数据命令后, 调用发送程序将指定的数据通过端口0发送给上位机。在P L C的存储区中, 从VB101开始为约定的数据存储区, VB100为发送的数据个数。发送完数据后, 打开发送完成中断。

3.4 接收完成中断 (INT_0)

接收完成中断用来处理接收完成中断事件, 它将接收缓冲区的数据还原并保存, 同时将M0.0置位。

3.5 发送完成中断 (INT_1)

发送完成中断用于处理发送完成中断事件, 主要是将M0.0复位、将接收缓冲区中存放结束字符的字节清零等。

4 结语

本文根据隧道监控装置的具体情况通过对计算机控制系统、可编程控制器PLC等技术的研究, 提出了一套西门子PLC-上位机监控系统的实现方案。

针对远程监控和存储历史数据等问题, 提出了自行开发监控系统的通信方案。在对上位机监控界面的设计中, 选择了简单易学的面向对象的Delphi;西门子S7-200PLC则选择了自由口通信方式, 可以根据隧道机电设备工作的具体情况自行编写通信协议。该设计使监控系统具备了一定的通信功能, 基本解决了隧道监控目前存在的一些主要问题。

摘要:在隧道交通监控系统中区域控制器是现场监控的核心, 论文以监控计算机与PLC数据通信的研究为理论基础, 针对隧道监控装置存在的问题, 提出了实时监控的方法, 通过对相关理论和技术的分析、应用, 设计出良好的监控界面, 主要开发了PC和S7-200PLC的通信程序。

关键词:交通控制,PLC,上位机,Delphi,串行通信

参考文献

[1] 汪晓平.PLC可编程控制器系统开发实例导航[M].北京:人民邮电出版社, 2004:71~75.

[2] 刘涳.砈玫脱沟缙饔肟杀喑绦蚩刂破?[M].西安:西安电子科技大学出版社, 2005:38~110.

[3] Hans Berger.西门子自动化系统入门[M].北京:人民邮电出版社, 2007:1~38.

[4] 严盈富.西门子S7-200PLC入门[M].北京:人民邮电出版社, 2007.

[5] 周万珍, 高鸿赋.PLC分析与设计应用[M].北京:电子工业出版社, 2004.

[6] 肖庆航, 陆定淑.Delphi7数据库开发教程[M].北京:清华大学出版社, 2004:53~59.

[7] 王春红.Delphi7程序设[M].北京:清华大学出版社, 2004:90~117.

[8] 赵兰涛, 苏彦华.Delphi串口通信技术与工程实践[M].北京:人民邮电出版社, 2004:34~77.

[9] 网冠科技.Delphi程序开发触类旁通百例[M].北京:机械工业出版社, 2005:39~43.

[10] 周晓梅, 周旭.复兴东路隧道监控系统软件的设计与实现[J].上海船舶运输科学研究所学报, 2006, 29 (1) .

[11] 刘浩, 蔡启仲.组态软件wincc在公路隧道监控系统中的应用[J].自动化技术与应用, 2001, 24 (5) :33~35.

[12] 吴立勋, 韩提文.隧道监控系统的网络结构设计与应用[J].山东理工大学学报, 2005, 19 (6) .

[13] 崔坚.西门子工业网络通信指南 (上册) [M].北京:机械工业出版社, 2004.

[14] 李双科, 吴记群.Windows环境下计算机与PLC串行通信的实现[J].兰州工业高等专科学校学报, 2005 (2) :30~33.

[15] 李鹏, 李琰.西门子PLC与计算机间的通讯程序设计[J].国外电子元器件, 2002 (8) :67~69.

[16] 孙小明.隧道监控系统的PLC应用分析[J].现代制造, 2008 (6) :46~49.

[17] 王维娜, 唐钊.OMRON及SIEMENS P LC在公路隧道监控系统中的串行通信实现[J].智能交通, 2006 (12) :54~57.

[18] 张良.PLC在高速公路隧道监控系统中的应用[J].微计算机信息, 2004, 20 (2) :5~6.

[19] 韩直.公路隧道机电系统综述[J].公路交通技术, 2004 (6) :101~103.

[20] 于文涛, 张少利.公路隧道监控系统的设计与应用[J].河南广播电视大学学报, 2005 (4) :55~57.

[21] 网冠科技.Delphi7基础培训百例[M].北京:机械工业出版社, 2006:211~212.

[22] 郭枫.PLC上位机监控系统的研究、设计[D].东华大学硕士论文, 2004.

[23] 何宏.隧道测控系统研究 (总体设计及交通流部分[D].长安大学硕士论文, 2002.

[24] 丁莉君.监控计算机与PLC数据通信的研究与应用[D].西安建筑科技大学硕士论文, 2007.

上一篇:从四个自信看中国特色社会主义文化下一篇:集团企业资金集中管理的必要性及模式探讨