收稿日期:2008-07-03
基金项目:陕西省教育厅专项科研计划资助项目(06J K273)作者简介:敬 伟(1977),女,重庆人,西北工业大学在职博士生,西安工业大学电信学院讲师,主要研究方向为数字图像处理及智能仪表。
基于三菱FX 系列PLC 和组态王
转辙机监控系统
敬 伟,高 丽,王 鹏,兀 伟
(西安工业大学电信学院,西安710032)
摘要:该文在介绍三菱FX 系列的可编程控制器及上位机监控软件 组态王 软件的基础上,根据转辙机测试台微机监控系统的要求,提出一种用VB6.0实现组态王软件实时监控三菱FX 系列PLC 的方法。
关键词:组态王;可编程控制器;动态数据交换
中图分类号:TN 915.04  文献标志码:A  文章编号:1000-0682(2009)03-0061-03
The control s yste m of point s w itch
based onM itsubis hi FX series PLC and K ingvie w soft ware
JING W e ,i GAO L ,i WANG Peng ,WU W ei
(Colle g e of E lectron ic Infor m a ti on E ng ineeri ng,X i !an T ec hnolog ic a l Un i versit y,X i !an 710032,C hina )
Abst ract :According to requ ire m ent o f the contro l syste m of point s w itch,one m ethod o f t h e K i n g  vie w so ft w are syste m o f real ti m e contro l of PLC by VB6.0is brought for w ard ,based on introducti o n o f
PLC of FX series o fM itsubishi and K ingvie w so ft w are .
K ey w ords :K ingvie w;prog ra mm ab l e l o g ic contro l(PLC );dyna m ic data ex change(DDE )
0 引言
工业自动化通用组态软件-组态王软件系统与最终工程人员使用的具体的PLC 或现场部件无关。对于不同的硬件设施,只需为组态王配置相应的通信驱动程序即可。组态王支持的硬件设备包括:可编程控制器(PLC)、智能模块、板卡、智能仪表、变频器等等。
PLC 以卓越的可靠性和方便的可编程性广泛应用于工业控制领域[1]
。实现PC 机和PLC 通信的目的是为了向用户提供诸如工艺流程图显示、动态数据画面显示、报表显示、窗口技术等多种功能,为PLC 提供良好的人机界面。
工程采用三菱公司的FX 系列中的FX2N 可编
程控制器[2]
,及上位工控机组成控制系统。上位机监控软件采用北京亚控科技发展有限公司的  6.5
组态王 组态软件,实现对转辙机测试台的过程监控及数据处理。
1 系统简介
转辙机是铁路上常见的用于控制火车前进方向的设备。转辙机活动杆的伸出或者缩回决定火车不同的前进方向。
克莱斯勒网络学院
转辙机实时监控系统以组态王为主要运行画面,首先在组态王界面上对被监控系统的参数进行设置,然后起动被测的转辙机测试台,在组态王的界面上可以动态显示下位机的运行状态以及完成对多种电
动直流转辙机各项电器性能指标的测试,如工作电流、工作电压、摩擦电流(故障电流)、转换力及转换时间(动作时间)等。由于组态王只提供这类三菱可编程控制器PLC 的驱动程序,没有提供其通信协议,因此,在功能并不很强大的组态王内部直接开发可编程控制器PLC 的通信协议是有较大难度的。一般采用的方法是:利用V isual Basi c 提供的串行通信功能
[3,4]
,
实现与可编程控制器PLC 之间的通信,再利用VB 的DDE 功能完成组态王与V isualBasi c 之间的动态数据交换。这样就把从可编程控制器PLC 采集到的外部
61∀2009年第3期              工业仪表与自动化装置
信号通过V isual Basic 间接动态的显示在组态王界面上。其系统结构如图1
所示。
图1 系统框架图
2 VB 与PLC 之间串行通信的实现
带异步通信适配器的PC 机与PLC 只有满足如下条件,才能互联通信别克gl8论坛
[5]
:带有异步通信接口的PLC
才能与带异步通信适配器的PC 机互联;双方采用的总线标准一致,否则要通过 总线标准变换单元 变换之后才能互联;双方的初始化、波特率、数据位数、停止位数、奇偶效验都相同。只有在对PLC 的通信协议分析清楚的情况下,严格按照协议的规定及帧格式来编写PC 机的通信程序。PLC 中配有通信机制,一般不需要用户编程。
PC 机与三菱FX 系列PLC 不能直接连接,要通过一条PC /PPI 电缆进行RS232/RS485的变换,图2
表示了它们之间的连接关系。隧道开什么灯
图2 PC 机与PLC 的连接方式
2.1 PLC 的通信协议
FX 2N 系列PLC 传输速率固定为9600bit/s ,数据格式由1位起始位、7位数据位(ASC II 码)、1位偶校验位及1位停止位组成,其格式如图3所示。通信一般都以 帧 为单位进行。帧中含有要传送的多个字符。帧结构如图4所示,其中STX 和ETX 分别表示帧的起始标志和结束标志,必须和命令码与数据作为整体一起发送。和校验值是从命令码开始到ETX 之间的所有字符的ASC II 码相加,取和的最低两位数。三菱FX2N 系列PLC 规定了通信中可以使用的字符及其ASC II 码和命令码,如表1和表2所示。
表1 FX 2N 系列PLC 与计算机通信的控制字符字符A SCII 码注释ENQ 05H 计算机发出请求A CK 06H PLC 对ENQ 的确认回答NAK
15H PLC 对ENQ 的否认回答
汽车超市STX 02H 信息帧开始标记ETX 03H 信息帧结束标记
字符A SCII 码字符ASC II 码字符A SC II 码字符A SCII 码
030H 434H 838H C 43H 131H 535H 939H D 44H 232H 636H A 41H E 45H 3
33H
7
粪车爆炸37H
B
42H
F
46H
表2 FX 2N 系列PLC 与计算机通信使用的命令码命令命令代码目标软继电器功能读命令#0∃即ASC II 码#30H ∃XYM STCD 读软继电器状态和数据写命令#1∃即ASC II 码#31H ∃XYM STCD 把数据写入软继电器强制通命令#7∃即ASC II 码#37H ∃XYM STC 强制某位on 强制断命令
#8∃即ASC II 码#38H ∃
XYM STC
威海二手车
强制某位o ff
上位机与PLC 的通信过程如图5所示。上位机读PLC 的命令帧格式和PLC 的返回帧格式以及
上位机写PLC 的命令帧格式和PLC 的返回帧格式分别如图6和如图7所示。
图5 上位机与PLC 的通信过程
其中PLC 站号由PLC 中的16位寄存器D8121确定,在PLC 程序可以设定本机的站点号。计算机号为上位机告诉下位PLC 本计算机的站点号,在上位机程序中确定。元件起始号为所要读的第一个元件(包括输入输出和内部寄存器),元件数量为所要读写的元件个数。站号、计算机号和读写元件数量以16进制表示。等待时间为上位告诉下位PLC 的通信延时时间,设定值为0~150m s ,在数据帧中以16
进制0~A 表示,若设定为0,则PLC 在接到上位机请求后马上回答。有无校验码可以在PLC 的通信寄存器D8120中设定。
62∀工业仪表与自动化装置                2009年第3期
图6 上位机读PLC 的命令帧格式和PLC
的返回帧格式
图7 上位机写PLC 的命令帧格式和PLC 的返回帧格式
2.2 VB 的通信协议
在VB 中M SCo mm 控件可以采用轮询或事件驱动的方法从端口获取数据
[6]
。这里采用的是事件
驱动的方法。这种方法就是在一个事件发生的时候,让程序自动地跳到一段程序。该控件的On  co mm 事件执行这个功能。Onco mm 程序负责对诸如在串口的硬件中断或者一个软件缓存的计数器到达了一个触发值这样的事件时做出反应。
在VB 中放置一个TextBox 控件。通过设定其Setti n gs 、Co mmPo rt 、InpuM t ode 、H andshaking 、Port O pen 属性来实现设定VB 的通信协议。这里设定Settings 属性为:9600,n ,8,1,即:该协议的自由口波特率为9600,无奇偶校验,每个字符的数据位为8位。3 VB 与组态王软件数据交换的实现
VB 与 组态王 之间通信的实现主要是通过 组态王 提供的动态数据交换(DDE )来完成的。DDE 是W i n do w s 平台上的一个完整的通信协议,它使应用程序能彼此交换数据和发送指令。DDE 过程可以比喻成两个人的对话。提问的一方称为 顾客 (C lient),回答的一方称为 服务器 (Server)。一个应用程序可以同时是 顾客 和 服务器 :当它向其他程序中请求数据时,它充当的是 顾客 ;若有其他程序需要它提供数据,它又成了 服务器 。这里的关键是要实现的是 组态王 作为顾客程序从VB 得到数据。
使VB 成为 服务器 很简单,只需在 组态王
中设置服务器程序的3个标识名(应用程序名、主题名、项目名),并把VB 应用程序中提供数据的窗体的Link M ode 属性设置为1,不必在VB 中增加任何程序。值得注意的是,将VB 的Fo r m Topic 的属性,设定成和在组态王中定
义DDE 设备时的"话题名"一
样;在组态王定义要显示出指定的VB 可执行文件中指定的TextBox 控件的值。
4 结束语
当系统开始运行前,要求首先运行VB 的可执行文件作为后台运行程序,然后才能运行组态王系统。当可编程控制器PLC 发送数据的时候,由VB 接受到此数据,再通过组态王提供的DDE 功能,将该数据显示到组态王界面上。这样,就把从可编程控制器PLC 采集到的外部信号通过VB 间接动态的显示在组态王界面上。
该方法实现了组态王对三菱FX 系列PLC 的实时监控。经过测试可知,系统的实时响应速度能达到毫秒级,并且这种实现系统实时监控的方法可移植性强,对于监控其他类型的可编程控制器PLC 或单片机也适用。
参考文献:
[1] 齐从谦,王士兰.PLC 技术及应用[M ].北京:机械工业
出版社,2000.
[2] 范逸之,陈立元,孙德萱,等.利用V is ua l Bas i c 实现串
并行通信技术[M ].北京:清华大学出版社,2001.[3] 杨 勇.用VB6.0实现PLC 与上位计算机的串行通信
[J].微计算机信息,2005,(10-1):56-59.
[4] Jan Ax elson .串行端口大全[M ].精英科技译.北京:中
国电力出版社,2001.
[5] (美)麦凯尔维,马丁森.V i sual Basic 5开发使用手册
[M ].杨继平译.北京:机械工业出版社,1997.
63∀2009年第3期              工业仪表与自动化装置