南昌钢铁集团公司利用已有的电话网将转炉和棒材分厂的下位机(PLC)采集的数据实时地送给几公里外信息中心的上位控制机(PC) ,建成PC对现场PLC的远程监控系统。该系统采用模拟载波传输方式,借助公共电话网(PSTN) ,以异步Modem拨号方式进行数据通信。将PLC送来的数字信号调制成模拟信号在电话线中传输,在接收端将模拟信号还原成数字信号。
1 系统设计
1.1 硬件连接
基本远程通信系统的硬件构成为: 1 台计算机作为上位机, 1台PLC (以西门子S7-200为例)作为下位机, 2 台调制解调器, 1 根PC /PP I电缆用于连接PLC和调制解调器。采用西门子S7-200 PLC开发工具初始化本地和远端调制解调器,把PC /PP I编程电缆的RS-232口接到调制解调器上, RS-485 口接到PLC上,并设置PC /PPI编程电缆的工作模式:设置数据传输率为9.6 kb/s,选择DTE和10位模式。
系统实现实时监控功能,分为上、下位机两部分。下位机PLC主要负责数据的采集和上传,运用STEP7-Micro/WIN进行编程;上位机负责对上传数据的处理、显示并作相应记录,可用VB6.0语言进行开发。
1.2 通信方式
S7-200 PLC为用户提供了3种通信方式:
(1) 通过PLC开发商提供的系统协议和网络适配器构成特定的公司内部网络。其特点是网络协议不公开,必须使用该厂商配套提供的支持相应协议的外设和上位机组态软件(如西门子公司PPI协议下的令牌环网等) 。
(2) 通过开发的工业现场总线,利用PLC内部集成端口或扩展通信模块,构成基于现场总线的集散控制网络。
(3) 通过标准的RS-485串行通信网络和自定义或自主选择的通信协议构成PLC及工控机的分布式网络。
南昌钢铁公司采用现场PLC的通信口在自由口方式下工作,使PLC在程序员自行设计的通信协议下工作。
2 上位计算机远程通信功能的实现
2.1 Modem拨号上网
直接对串口编程是一件复杂的工作,在Windows操作系统下,利用VB 6.0 提供的MSComm通信控件可以方便地访问串口。
MSComm控件同时支持事件驱动及查询方法。事件驱动通信特别适合Windows程序的编写,是处理串口交互作用的一种非常有效的方法。使用MSComm控件的OnComm事件捕获并处理通信错误。无论何时,当CommEvent属性的值变化时,都产生OnComm事件。-
-
-
lj7071 发表于 2007/3/31 16:30:02
2.2 通信流程设计2楼 回复本楼通信流程的设计是该监控系统最关键与复杂的部分。上位机的通信管理程序流程如图2 所示。工作过程如下:
(1) 拨号后,首先进行拨号阶段的通信流程管理,此时MSComm的InputMode属性设置为文本,系统默认接收到的数据为字符串。
(2) 当系统接收到“Connect”字符串时,表示本地Modem与远端Modem间已经建立了物理连接。此时,将InputMode属性设置为二进制。此后,系统将进行检测数据的传输。
(3) 当上位机发出“Send”命令字时,下位机开始上传数据;而当上位机发出“Stop”命令字时,下位机停止上传数据。
3 PLC通信程序
PLC通信程序遵循Modbus协议,采用模块化子程序结构,即整体功能由多个功能相对独立的子功能组合实现,每个子功能由若干个任务单一的子程序构成。
(1) 通信总调度模块。通信总调度模块的作用是将PLC通信部分的功能归并为一个调用单元,作为一个功能模块提供给PLC主程序。PLC在每次扫描中执行该模块,完成通信方面的处理工作。
模块设置一个通信超时标志,当请求帧尚未接收完毕,而续字节超过20 ms仍未到达,则断定通信出错。出错则丢弃本帧,调用通信初始化模块对工作区复位,并准备下一次通信。
(2) 通信初始化模块。PLC的通信以“接受请求帧-返回响应帧”的过程作为一个通信循环,每次循环之间均通过初始化模块对通信工作区中的各中间变量和标志进行复位操作,并将同步字、接收数据指针和发送数据长度的设置放在开机初始化中,在第一个扫描周期时执行。
(3) 通信寄存器刷新模块。通信寄存器是上位机程序与PLC进行数据交换的桥梁。PLC把I/O点状态存入相应通信寄存器作为发送数据前的准备。在PLC中,对于上传的状态数据实时进行对应寄存器的刷新,以随时准备将数据提供给上位机。
4 结束语
立足现有电话网络,通过Modem拨号上网实现PLC与PC间的远程通信,可以满足监控系统的要求,使远程监控中心能够通过PLC读取自动化设备的实时运行信息,并向PLC传送控制指令。PLC在远程监控系统中的应用越来越广泛,同时远程监控功能的实现也进一步拓展了PLC的功能和用途。
引用 lj7071 2007/3/31 16:30:02 发表于2楼的内容
-