基于DELPHI实现PC机与PLC的串行通讯-PLC技术网(www.plcjs.com)-可编程控制器技术门户


基于DELPHI实现PC机与PLC的串行通讯

 (点击题目可以在互联网中搜索该题目的相关内容)
日期:2006-4-25 23:21:05     来源:本文摘自《PLC&FA》   作者: 点击:
点击【 大  中  小 】, 可 以 选 择 字 体的大小,以便 你 阅读.

1  引言
    DELPHI因为它的编程相对较简单、功能又很强大,应用程序开发周期较短、运行速度快等特点,目前被广泛应用于监控系统中,而在监控系统中,上位机与各控制设备及智能仪表(如:PLC、电力测试仪、温度巡检仪、数字电度表等)的串行通讯又是一个非常重要的环节。在Windows环境下用Delphi实现串行通信有3种方法:
(1) 使用VB的通信构件MSComm;
(2) 调用Windows95下的API函数来完成通信;
(3) 熟悉C/C++或其它语言的用户可以将自己的程序编译链接为DLL(动态链接库),这样Delphi就可以调用DLL里的函数来通信。其中最容易方法是用VB的通信构件MSComm进行编程。
在使用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串行通讯的整个过程。

2  三线制串行通讯线的制作     
    上位机(PC机)的通讯一般采用9针串口,SU-6系列PLC选用通讯模块U-01DM,该模块的通讯用串行插座为25针,内含一个RS-232C接口和一个RS422接口,这里由于上位机与PLC在同一盘柜内,所以直接采用 RS-232C进行通讯(最大传输距离为15m),三线制连接方式如图1所示。

3  U-01DM通讯模块的参数设定
通讯模块参数的设定方法请参见相应模块的说明书,本次通讯的参数设置如下:


图1      三线制串行通讯接线方式


(1) 自局号码用十六进制表示为01;
(2) 波特率设定为19200bps;
(3) 无奇偶校验;
(4) 自我诊断方式;
(5) 应答延时时间为0S;
(6) 采用主-子局通讯方式;
(7) 本机为子局(上位机一般默认为主局);
(8) 有通讯超时的通常动作方式;
(9) 采用ASC码通讯方式。     

4  程序创建
    如图2所示,新建一个工程,将Form1的Caption属性改为“从子局到主局的数据传送”,放入两个Label控件,将其Caption属性分别改为:“请输入读出地址”,“数据传送量”,放入两个Edit控件,将Edit1的Text属性改为0101,将Edit2的Text属性改为000C(注意大小写),意思是从PLC的0101地址开始读取12个数,再放入一个Memo控件用于显示接收到的数据、一个Timer控件、一个Mscomm控件。Mscomm控件是一个VB构件,经过引言所述的安装之后将显示在ActiveX中。


图2      从子局到主局的数据传送界面



5  应用CCM通讯协议进行通讯
    CCM通讯协议包括从子局到主局的数据传送,和从主局到子局的数据传送两大部分。在实际应用中,前者是为了将PLC中数据送到上位机中,实现数据的显示功能,后者主要是为了通过上位机向PLC发送命令,实现对PLC及相关设备的控制。图3是从子局到主局的数据传送框图,(详细说明参见程序清单或CCM2通讯协议说明书。从主局到子局的数据传送框图略。)在用CCM通讯协议进行通讯时,只需在上位机上编制程序,PLC的应答是自动完成的,所以对于PLC来说,用户只需完成对通讯模块的参数设置并保证与上位机的设置相对应即可。


图3     子局到主局的数据传送框图


6  程序清单及详细说明
    (本程序只演示了从子局到主局的数据传送方法,从主局到子局的数据传送方法与之类似)

本新闻共3页,当前在第11 2  3  

上一篇: 基于CAN总线的电动汽车能量回收系统研究
下一: 基于EPP协议的AVR与PC并行通信系统的设计