登录
首页 PLC论坛 罗克韦尔Rockwell(AB)
回帖 发帖
正文

主题:谁能给我一个AB PLc和电脑通信,安装驱动,及组态的概念思路

点击:7332 回复:9

非常感谢!
08-05-20 17:48
ab的什么plc.
比较通用的,ab提供rslinx(运行在电脑上),作为ab plc和其它软件的通讯桥梁.rslinx提供和PLC连接的驱动(串行,以太网,dh等),也提供和应用软件的接口(OPC,DDE).
08-05-20 18:35
谢谢,,那应用程序接口(OPC,DDE).派什么用?怎么用?
08-05-21 18:03
OPC和DDE是rslinx作为服务,为客户程序提供数据.
应用程序应该包括一个opc或者dde的客户驱动.很多画面组态软件都有opc客户驱动,所以可以和rslinx连接获得数据;另外也有很多vb,vc等编的opc客户例程和成熟的客户程序.dde是windows的一种老的进程间数据交换机制,vb和excel等office的vba都支持.
具体的可以做一个实例来理解,更多的可以看opc和dde的规约.
08-05-21 20:31
1 OPC(OLE for Process Control)技术规范与意义
OPC技术是以Microsoft的OLE/COM 技术为基础建立的一项技术规范与标准,它采用客户/服务器(Client/Server)模型,定义了一组COM对象及其双接口(Dual Interface)。
OPC对象主要包括服务器(Server)、组(Group)和项(Item)。OPC服务器对象除了维护自身信息外,还作为组对象的容器,可动态地创建或释放组对象;而组对象相对于项而言也是一个包容器,它提供一套管理项的机制;OPC项则表示了与OPC服务器中数据的连接,包括值(Value)、品质(Quality)、时间戳(Time Stamp)三个基本属性。
OPC对象双接口由OPC自动化接口(Automation Interface)和定制接口(Custom Interface)组成。在C/S工作模式下,客户程序通过接口与OPC服务器连接,调用OPC对象的方法。一般来说自动化接口能为高级语言客户程序提供极大的便利,但数据传输效率较低,而定制接口则为用C/C++语言编写的客户程序带来灵活高效的调用手段。
OPC技术建立了一组符合工业控制要求的接口规范,将现场信号按照统一的标准与SCADA 、HMI等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有OPC接口的服务器,任何支持OPC接口的客户程序均可采用统一的方式存取这些设备,无须重复开发驱动程序。这样大大提高了控制系统的互操作性和适应性。
2 OPC数据存取服务器在以太网控制系统的层次结构
图1示意了以太网控制系统的总体层次结构。在现场控制层,以PC104嵌入式系统作为现场智能节点,其外接模拟量输入输出、开关信号输入输出等I/O卡,主要作用是执行各种控制功能及进行数据采集,进行状态监测和报警,并将采集的数据上传;监控计算机则采用PC机,装有两块网卡,利用其中一块与下位机PC104通信,而通过另一块网卡与生产管理调度层的其他计算机组成局域网。监控计算机中运行OPC数据存取服务器程序,将现场智能节点传上来的数据通过OPC接口送到监控软件进行监控,并利用组态软件进行复杂的组态工作,将组态信息下载到PC104上,调整其控制算法和参数。而其他管理调度层的计算机OPC客户程序则通过DCOM的方式访问OPC服务器程序,进行信息交互。

由此可见,OPC服务器在以太网控制系统中将企业现场控制层与生产管理调度层有机地连接起来,组成一个开放性好、可靠性高的分布式控制系统,发挥了重要的桥梁作用。
3 OPC数据存取服务器的设计与实现
OPC数据存取服务器可按图2的系统结构设计。它主要由服务器对象、组对象、项对象、数据存储区和TCP/IP通信接口组成。

由于OPC数据存取服务器既要通过网卡与现场设备进行通信,又要通过OPC接口与客户程序进行交互,所以采用多线程模型以保证数据存取的效率。为避免不同线程同时对数据区中的数据进行操作,还需要考虑对临界区的互斥控制。OPC技术是以微软的COM技术为基础,同时需要直接与底层硬件打交道,所以采用VC实现比较灵活方便。OPC数据存取服务器主要分为OPC通用接口、硬件接口以及数据存储区的实现,在本系统中硬件接口的实现主要是实现以太网通信接口。
3.1 OPC通用接口的实现
首先定义OPC数据存取服务器的名称(ProgID)和类标识(CLSID),实现OPC数据存取服务器类厂对象。然后由OPC规范中定义的OPCServer类、OPCGroup类和OPCItem类,分别派生出装置(Device)、板卡(Board)、通道(Channel)三个新类。
OPC规范中定义的接口可分为可选接口和必选接口,但对任何OPC服务器而言,应实现必选接口的成员函数。因此在派生类中重载其父类中必选接口成员函数,并根据实际情况重载可选接口成员函数,例如:IOPCBrowseServerAddressSpace接口等。
为了满足实际要求,还需要定义各个派生类的特殊属性和方法并实现其方法。例如,在装置类中增加IP地址属性,用以标识现场 智能节点。另外增加搜索函数,自动列出已连入现场控制层的 智能节点的IP地址。
08-05-22 09:14
http://www.vbgood.com/vb.good/article-do-view-articleid-3325-page-87.html
在VB中用DDE实现工业控制
转发 评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:8036, 日期:2001-10-15
我公司的污水处理厂设备运行使用基于AB公司SLC500的计算机控制系统。全厂设备采用远程控制,由工作人员在中央控制室发布命令控制设备运转,大大减轻了工作人员的劳动强度。但是同时由于设备出现故障时只显示故障信息而没有声音报警,给工作人员及时发现问题带来很大不便。
我对系统进行分析后,利用VB编程通过DDE(Dynamic Data Exchange)与工控系统通讯,实现语音报警功能。
通讯系统分析
该系统为工业DH+网,并且系统硬件环境由两台安装1784-KTx通讯卡的工控PC机和五台SLC500组成,整个结构图如图1所示。
图1
PC机上的通讯软件和工业组态软件分别为RSLINX和RSVIEW。它们之间的通讯采用DDE(Dynamic Data Exchange 动态数据交换)技术。所以我只要知道提供DDE服务的Application、Topic、Item就可以在VB开发环境下利用相关控件与RSLINX及RSVIEW进行通讯了。
制作语音提示
语音播放可以支持WAV或MP3格式的声音文件,由于MP3 文件体积小,所以我选用这个格式。从网站下载一个ActiveX 控件用于播放语音,此控件为Mp3Play.OCX,很容易找到。然后用Windows中的录音机将所需提示的语音录成WAV格式,再用MP3转换器将其转成MP3格式。
图2:总体结构图
图2中A部分主要说明:DDE的建立以及出现报警后将报警信息插入到报警队列最后。报警队列是等候报警的信息排队。因为计算机在广播报警信息时一次只能广播一条,建立报警队列后同时发生的报警将等候上一条播完后再广播。
图2中B部分主要说明:定时在报警队列中检查及有报警信息后的播放过程。
程序设计
下面举一个实例说明程序的实现:无论何种原因,当进水泵房故障停机时,PC机报警“进水泵故障!”。
首先建立好“进水泵故障!”的语音文件存为alarm.mp3 ,随后建立一个标准VB程序,在Form1上添加一个Timer控件用于控制程序循环,一个Mp3Play控件用于播放报警文件,一个Label控件用于建立DDE通讯,一个Listbox控件用于建立报警队列。Name属性均为默认,Listbox 的Visible 属性设为False。
在Form1_Load事件中加入如下代码:
Private Sub Form1_Load ()
Label1.LinkTopic="rtdata|airportauto"
'设立DDE连接通道
Label1.LinkItem="plc1\f101" '设定连接项目为进水泵故障,此项根据连接项目的不同而不同,如果你使用的是RSVIEW则在TAG EDITER中可以找到与PLC数据点相对应的LinkItem。
Label1.LinkMode=1 '自动连接
Timer1.Interval=1000 '设定循环一次周期为1秒
Timer1.Enable=True '打开定时器
End Sub
在Label1的Label1_Change()中加入如下代码:
Label1_Change()
Dim i As Integer
if Label.Caption=1 then '如果变为报警状态则
For i=0 To Listbox1.Listcount-1 '检查队列,有此信息则不插入信息
If "alarm"=listbox1.list(i) then Exit sub
Next i
Listbox.AddItem("alarm") '插入新报警信息到队列最后。
End Sub
在Timer1的On_Timer事件中加入如下代码:
Private Sub Timer1_Timer()
Dim retcode As Integer
Dim temstring As String
If LISTBOX1.ListCount = 0 Then Exit Sub '检查队列是否为空
temstring = Listbox1.List(0) '取出第一条报警信息
LISTBOX1.RemoveItem (0) '将该条移出报警信息队列
On Error GoTo error_handle
retcode = Mp3Play.Open(App.Path + temstring + ".mp3", "")
retcode = Mp3Play.Play '播放语音报警
Exit Sub
error_handle: '错误处理
'retcode = Error
soundable = True
Resume Next
End Sub
好了!软件完成,在RSLINX和RSVIEW运行之后启动该程序,就可以实现进水泵故障的语音报警了。
08-05-22 09:15
谢谢,还想请教DDE和OPC还有API。各有什么异同?它们的数据和PLC 的关系?
08-05-23 21:54
谢谢,还想请教DDE和OPC还有API。各有什么异同?它们的数据和PLC 的关系?那些客户程序用DDE。那些客户程序用OPC?及API
08-05-23 21:57
路过 学习下
12-06-07 22:24
学习了~,道声谢谢!
12-12-03 16:08

工控新闻

更多新闻资讯