1 引言
WWW_PL※CJS_COM-PLC-技.术_网
DELPHI因为它的编程相对较简单、功能又很强大,应用程序开发周期较短、运行速度快等特点,目前被广泛应用于监控系统中,而在监控系统中,上位机与各控制设备及智能仪表(如:PLC、电力测试仪、温度巡检仪、数字电度表等)的串行通讯又是一个非常重要的环节。在Windows环境下用Delphi实现串行通信有3种方法:WW.W_PLC※JS_C,OM-PL,C-技.术_网
(1) 使用VB的通信构件MSComm;plcjs.技.术_网
(2) 调用Windows95下的API函数来完成通信;W1WW_P4LCJS_COM-PLC-技.术_网
(3) 熟悉C/C++或其它语言的用户可以将自己的程序编译链接为DLL(动态链接库),这样Delphi就可以调用DLL里的函数来通信。其中最容易方法是用VB的通信构件MSComm进行编程。WW.W_PLC※JS_C,OM-PL,C-技.术_网
在使用VB构件之前,首先要将VB构件文件MSComm32.OCX安装到Delphi的动态构件库中。打开主菜单Component选择Import ActiveX Control...项,在弹出的对话框里选中Microsoft Comm Control6.0(安装VB6.0后必有此项),再单击Install按钮。此时Delphi载入VB构件文件并重新编译DCL(Delphi Component Library)。编译完成后,MSComm的小按钮出现在ActiveX 页中,这时程序就可以使用此构件了。应该注意的是,安装前要确保VB通信构件的控制文件MSComm32.OCX在编译DCL之前已在\Windows\System下。下面就以KOYO的SU-6系列PLC为例,全面介绍用DELPHI实现与PLC串行通讯的整个过程。plcjs.技.术_网
2 三线制串行通讯线的制作
WWW_PL※CJS_COM-PLC-技.术_网
上位机(PC机)的通讯一般采用9针串口,SU-6系列PLC选用通讯模块U-01DM,该模块的通讯用串行插座为25针,内含一个RS-232C接口和一个RS422接口,这里由于上位机与PLC在同一盘柜内,所以直接采用 RS-232C进行通讯(最大传输距离为15m),三线制连接方式如图1所示。WWW_P※LCJS_COM-PLC-)技.术_网
3 U-01DM通讯模块的参数设定
WW.W_PLCJS_COM-PLC-技.术_网
通讯模块参数的设定方法请参见相应模块的说明书,本次通讯的参数设置如下:WW.W_PLCJS_COM-PLC-技.术_网
P.L.C.技.术.网——可编程控制器技术门户
WWW_PLCJS_COM-PLC-技.术_网
图1 三线制串行通讯接线方式WW.W_PLCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
(1) 自局号码用十六进制表示为01;WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
(2) 波特率设定为19200bps;WWW.PLCJS.COM——可编程控制器技术门户
(3) 无奇偶校验;WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
(4) 自我诊断方式;WWW.PLCJS.COM——可编程控制器技术门户
(5) 应答延时时间为0S;WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
(6) 采用主-子局通讯方式;P.L.C.技.术.网——可编程控制器技术门户
(7) 本机为子局(上位机一般默认为主局);W1WW_P4LCJS_COM-PLC-技.术_网
(8) 有通讯超时的通常动作方式;WW.W_PLCJS_COM-PLC-技.术_网
(9) 采用ASC码通讯方式。 WWW.PLCJS.COM——可编程控制器技术门户
4 程序创建
plcjs.技.术_网
如图2所示,新建一个工程,将Form1的Caption属性改为“从子局到主局的数据传送”,放入两个Label控件,将其Caption属性分别改为:“请输入读出地址”,“数据传送量”,放入两个Edit控件,将Edit1的Text属性改为0101,将Edit2的Text属性改为000C(注意大小写),意思是从PLC的0101地址开始读取12个数,再放入一个Memo控件用于显示接收到的数据、一个Timer控件、一个Mscomm控件。Mscomm控件是一个VB构件,经过引言所述的安装之后将显示在ActiveX中。WWcW_PLCJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
图2 从子局到主局的数据传送界面WW.W_PLCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
5 应用CCM通讯协议进行通讯WWW_PLCJS_COM-PLC-技.术_网
CCM通讯协议包括从子局到主局的数据传送,和从主局到子局的数据传送两大部分。在实际应用中,前者是为了将PLC中数据送到上位机中,实现数据的显示功能,后者主要是为了通过上位机向PLC发送命令,实现对PLC及相关设备的控制。图3是从子局到主局的数据传送框图,(详细说明参见程序清单或CCM2通讯协议说明书。从主局到子局的数据传送框图略。)在用CCM通讯协议进行通讯时,只需在上位机上编制程序,PLC的应答是自动完成的,所以对于PLC来说,用户只需完成对通讯模块的参数设置并保证与上位机的设置相对应即可。P.L.C.技.术.网——可编程控制器技术门户
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PmLC-技.术_网
图3 子局到主局的数据传送框图WWW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
6 程序清单及详细说明WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
(本程序只演示了从子局到主局的数据传送方法,从主局到子局的数据传送方法与之类似)——可——编——程——控-制-器-技——术——门——户