基于OPC技术的上位机与PLC之间的通信
通过OPC与小型PLC通讯

通过OPC与小型PLC通讯如何通过OPC与小型PLC通讯一、将PLC串口设置为Modbus从站协议,并且设置好从站地址,波特率等参数二、在计算机上运行MBOPCsvr软件,通过Modbus协议与PLC 通讯。
具体设置如下:1、选择connection,选择串口号,进行串口参数设置和协议设置2、选择File—>New,新建数据标签其中,Slave是设置PLC从站地址。
不同数据类型所表示的PLC数据区不同,具体如下:COIL STATUS:%MX或%QXINPUT STATUS:%IXHOLDING REGISTER:%MW或%QWINPUT REGISTER:%IWPoint输入数据Modbus起始地址,注意相比PLC原始Modbus 地址需要加1,诸如%MW0,则Point应该输入3001,PLC原始Modbus地址对应换算关系见下表数据区类型地址范围Modbus地址映射公式Modbus数据类型%IX BOOL %IX0.0~%IX511.7 0~4095 IXm.n:m*8+n 1x I区%IW WORD %IW0~%IW510 0~255 IWm:m/2 3x%QX BOOL %QX0.0~%QX511.70~4095 QXm.n:m*8+n 0x Q区%QW WORD %QW0~%QW510 0~255 QWm:m/2 4x%MX BOOL %MX0.0~%MX7816.73000~65535MXm.n:m*8+n+3000 0x M区%MW WORD %MW0~%MW8190 3000~7095 MWm:m/2+3000 4x Scan输入连续读取的数据长度。
点击set default data type可以设置数据类型,如下图所示3、设置完成后,会出来以下界面:有数据显示,表示通讯成功。
4、假如有多种数据类型数据通讯,或者不同地址数据通讯,可以同时新建多个数据标签。
数据标签建成后,表示OPC软件与PLC之间Modbus通讯已经完成。
上位机通过OPC-UA-server与S71200-PLC相连的配置步骤

上位机通过OPC UA server与S71200 PLC通讯的配置步骤1、分配s71200的IP地址:(1)打开step 7 V11,新建一个项目,在项目视图界面中找到左侧树项目的在线访问(2)打开在线访问下拉菜单,找到本机的网络适配器(如:Realtek RTL8169、8110Family),双击更新可访问的设备,就会显示本机所连的s7 1200设备。
(3)选择一个设备(如:地址是192.168.1.3的PLC 46),在其下拉菜单中双击在线和诊断(4)在弹出的对话框中,选择左侧的功能下拉菜单,单击分配IP地址,如下图如果是新的1200PLC,它的IP地址和子网掩码都是0,这时查看本机所在的网络,在图示的IP地址中输入与本机所在同一网络的子网IP地址。
如本机IP为192.168.1.16,那么给PLC分配的地址可以为:192.168.1.2、192.168.1.3、。
,若使用路由器,输入路由器地址,如192.168.1.1,如没有使用路由器,则将路由器点掉,单击分配IP地址,即可。
如果1200PLC已经分配好了IP地址但与本机所在的地址并在同一网络内,如PLC的地址为:192.168.0.1,本机地址为192.168.1.16,更改1200的IP需要预先复位,具体如下。
(5)复位1200PLC。
在步骤(4)的对话框中,选择重置为工厂设置,弹出如下对话框。
选择重置IP地址,单击重置,确定。
重置IP之后,PLC的IP地址和子网掩码都修改为0,可以进行步骤(4)的工作。
如不复位就修改IP 地址,会出现无法完成此功能错误。
2、配置OPC UA服务器(1)启动OPC配置工具:C:\Program Files\SIEMENS\SIMATIC.NCM\S7BIN\S7tgtopx.exe(2)双击S7tgtopx.exe图标打开,新建一个项目,并命名,单击OK(3)右键新建的项目图标,插入一个PC站点(SIMATIC PC Station),如下图(4)单击新生成的SIMATIC PC Station(1),在右侧自动显示PC站点的硬件配置:Configuration(5)双击Configuration图标,在弹出的硬件配置对话框中,插槽1选择OPC Server(右侧选择SIMATIC PC Station—User Application—OPC Server—SW V7.0)(6)以同样的道理在插槽2,选择IE General(SIMATIC PC Station—CP Industrial Ethernet —IE General—SW V6.2)(7)在将SW V6.2 拖入插槽2后,会自动弹出IE General 参数对话框(8)在IP address 中输入本机的IP地址,如:192.168.1.12,下面的Subnet总单击New,确定即可出现Ethernet(1),单击OK完成硬件配置。
基于OPC技术的上位机与PLC之间的通信.

基于OPC技术的上位机与PLC之间的通信1 引言现代工业控制系统通常以PC机为上位机,通过与现场工控设备如PLC 的数据交换与处理,实现对生产过程的自动控制。
对于小型控制系统,采用专门的组态软件成本太高,用VB设计监控系统则可以降低成本,但首先要解决上位机与PLC之间通信问题。
以往使用较多的进程间通信方式是DDE(动态数据交换)方式,随着OPC技术的发展和普及,它已成为工业过程控制的通信标准。
OPC服务器有两类接口,其中自动化接口主要用于VB、Delphi等开发工具。
本文利用罗克韦尔公司提供的OPC接口,用VB编写了客户端应用程序,实现了上位机与AB可编程控制器之间的数据交换。
2 OPC技术简介OPC(OLE for Process Control—用于过程控制的对象连接与嵌入)是一套以微软对象连接与嵌入OLE、组件对象模型COM、分布式组件对象模型DCOM(Distributed COM)技术为基础,基于Windows操作平台,为工业应用程序之间提供高效的信息集成和交互功能的组件对象模型接口标准。
OPC实际上是提供了一种机制,通过这种机制,系统能够以服务器/客户端标准方式从服务器获取数据并将其传递给任何客户应用程序。
这样,只要生产商开发一套遵循OPC规范的服务器与数据进行通信,其他任何客户应用程序便能通过服务器访问设备。
OPC服务器有两类接口:定制接口和自动化接口。
定制接口为C++程序服务,自动化接口为VB这一类可使用自动化对象的程序服务。
定制接口是服务商必须提供的,而自动化接口则是可选的,不过OPC基金会提供了一个叫做“自动化包装器”的动态连接库,用于在两者间转换。
OPC数据存取规范规定的基本对象有三类:服务器(server)、组(group)和数据项(item)。
服务器对象包含服务器的所有信息,也是组对象的容器,一个服务器对应于一个OPC server,即一种设备的驱动程序。
组对象除了包含它自身信息外,还负责管理数据项。
上位机与PLC通讯及OPC数据采集实践一

上位机与PLC通讯及OPC数据采集实践一上位机与PLC通讯及OPC数据采集实践一背景由于项目的需要,上位机(工控机)需要与PLC通讯(AB的PLC)通过PLC控制相关的设备;另一部分需要做一个数据采集程序从一个OPC服务器(此服务器作为多个PLC数据的服务端用的是AB的RsLinx)采集一部分PLC的数据供另一个应用程序用。
由于之前没有接触过PLC,也没有听说过什么OPC,所以从网上找些资料,由于做的时候实际的环境可以调试,很多东西在写的时候都没啥底,最后在现场调试的时候有些东西才搞清楚,整个过程还是费了些周折,有些东西虽然还是没有完全弄懂,但基于这个项目的基本功能算是完成了。
所以记录下来,以便以来有可能用得着,也给初次接触这块的同学提供些参考。
上位机与PLC的通讯上位机基于C#写的,PLC是AB的,C#程序通过串口(RS232-485转换器)与PLC通讯,协议用的是标准modbus,程序发指令给PLC,PLC来控制电磁阀,继电器等工作。
由于PLC本身没有采集数据,上位机还要把采集到的数据写到PLC,数据原本是float的,但传给PLC 时转成small int(小于65536)的整数,PLC内部再作除法来还原float 数据.这部分基于串口通读,modbus协议倒时没费啥事。
串口通讯可以用串口调试助手测试;至于写数据有没有写成功可以用ModScan32来看,连上对应的串口,设置好波特率,从机地址就可以看到默认100个寄存器的值。
PLC还有一个I/O口是编程用的,连接后用rslogix可以查看实时的状态,不过不大会用,看到PLC编程的工程师是这么用的。
数据采集程序与OPC服务器的通讯与数据采集数据采集程序与OPC服务器在同一局域网,但不同网段,可以Ping通,但在程序里就是连不上OPC服务器,提示RPC服务器不可用。
在网上找资料说是要配置服务端及客户端的DCOM,于是照网上的方式把客户端的机器设置DCOM,但服务端控制不了,对方的工程师说已经配置好了,但死活还是连不上,提示还是一样。
基于OPC技术的PC与西门子PLC的实时通讯

基于OPC技术的PC与西门子PLC的实时通讯摘要:随着我国科学技术水平的不断进步,工业在这一时期得到了长足的发展。
这一行业发展现状是与OPC工业标准的确立分不开的,文章阐述了OPC技术在PC系统上的连接方式,详细的分析了其进行通讯过程的原理。
这一内容的指出明确了搭建OPC技术中的PC机与西门子PLC系统通信架构的方式。
在此过程中,Simatic NET应用软件实现了OPC客户端与OPC服务器的实时连接。
关键词:OPC技术的PC;西门子PLC控制系统;连接通讯引言伴随着工业发展不断先前推进,这就使科学技术人员面对着大量的信息数据处理和长距离实时通讯的问题。
西门子PLC由于其具有功能性强以及易操作性的特点,被广泛的应用于我国各类工业领域的建设过程中。
本文对西门子PLC技术的应用现状进行分析,旨在使相关行业建设者更加清晰PLC当前的使用情况。
一、OPC技术的PCOPC(OLE for Process Control),是一种用于过程控制的工业标准,它可以解决各种信息设备驱动程序的通信和应用软件的通信。
对于不同制造商提供的服务程序和驱动程序,具体的解决方式是将这两种程序结合在一起。
这就解决了以往要想及时存取现场设备的数据信息,必须对每一个应用软件开发商进行编写接口函数的技术难题。
随着科学技术的不断进步现场设备的型号种类繁多,与之对应的产品也跟着不断更新升级,这就为设备用户和软件开发人员带来了庞大的工作量。
OPC工业标准在这一时期应运而生。
OPC工业标准是以微软公司的OLE技术为研发基础的,而在OPC技术中所使用的技术是OLE 2技术。
OLE技术标准成功的连接起多台计算机,使之可以在相互之间交换图案、文档等信息数据。
可以说OPC工业标准的研发使用,为连接现场不同设备以及建立企业信息系统的复杂程序提供了一个工作效率高、可靠性强以及交互操作性好的进行方案。
此外,这一技术还定义了在Microsoft操作系统中PC之间过程信息数据的交换形式。
基于OPC技术的PC机与西门子PLC的通信

4 。 4 组态 下载
( 1 ) 完成 P C站组态后 , 可在 n e t p r o窗 口点击功 能 按 钮栏 中下载按 钮将组 态下载到 P C站 中。
( 2 ) 下载完成后 , 可 以打 开 s t a t i o n c o n f i g u r a t i 0 n e d i t o r 窗 口检 查 组 件 状 态 。
n e t wo r k按 钮 , 进入 N e t P r o 配 置。
S i ma t i c NE T 是 西门子在 工业控制层面上提供 的一
个 开 放 的 多 元 的通 讯 系 统 , 是一款基于 O P C 技 术
的 自动 化 控 制 方 案 实术 与 应用 》 2 0 1 5年第 3 4卷 第 8期
‘ : 一 i 、 囊 篓 0
簿搂 季
瞧 套
( 3 ) 完 成 PC站 组 件 设 置 后 , 按 下 编 译 存 盘 按 钮
确 定且 存 储 当前 组 态 配 置 。编 译 无 误 , 点击 c o nf i g u r e
置为 S t a n d a r d也可设置为 DP, 如果 C P 5 6 1 3 作为 D P主
站 , B U S p r o f i l e 应 设 置为 D P 。
4 。 5 6 数据 通 讯 的测试 一 OP C Sc o u t
( 1 ) 打开 O P C S c o u t , 双击 O P C s i ma t i c Ne t , 在 随 之弹 出的 Ad d G r o u p 对话 框 中输入组名 , 本例命名 为
c onnec t i on
一
1 )。双 击此连接 , 可 出现可 能被 访 问的
上位机通过opc与ab系列plc串口通讯

上位机通过opc与ab系列plc串口通讯上位机通过opc与ab系列plc通讯(第一步)配置 ab plc 打开rslinx 点>>Communications>>Configure Drivers.选择:RS-232 DF1 devices点:Add New.点完上面,跳出如下画面,点击:Auto-Configure 如果成功,就会显示Auto-Configure successful!点OK,就会又回到这个画面。
点strat,在后面显示runing。
点到这里,就会在“树”里看见你的设备了。
在树里,找到你的设备,点右键,选择Configure New DDE/OPC Topic.在树里,找到你的设备,点右键,选择Configure New DDE/OPC Topic.到这里,就配置完毕了。
然后打开rslinx自带的测试工具OPC Test Client 测试一下。
点开opc test client 点新建。
选择RSLinx OPC Server 点OK。
点击后,你的蓝色的标题栏内就显示OPC Test Client – [~RSLinx OPC Server].点:Group>>Add Group.取一个组名,(我这里是test),然后点OK.组创建以后,Item就激活了,点击:Item>>Add Item.在access path 填入你上面写的通道名(我这是ML1500) 在Item Name 处写入你要检视的单元名。
OPC Test Client 也可以测试其他的opc连接。
比如下图,我在开物组态中设置一个变量,通过opc就可在OPC Test Client 中看见。
好,结束,到此,你就可以配置你的上位机了。
上位机通过opc与ab系列plc串口通讯

上位机通过opc与ab系列plc串口通讯上位机通过opc与ab系列plc通讯(第一步)配置 ab plc 打开rslinx 点>>Communications>>Configure Drivers.选择:RS-232 DF1 devices点:Add New.点完上面,跳出如下画面,点击:Auto-Configure 如果成功,就会显示Auto-Configure successful!点OK,就会又回到这个画面。
点strat,在后面显示runing。
点到这里,就会在“树”里看见你的设备了。
在树里,找到你的设备,点右键,选择Configure New DDE/OPC Topic.在树里,找到你的设备,点右键,选择Configure New DDE/OPC Topic.到这里,就配置完毕了。
然后打开rslinx自带的测试工具OPC Test Client 测试一下。
点开opc test client 点新建。
选择RSLinx OPC Server 点OK。
点击后,你的蓝色的标题栏内就显示OPC Test Client – [~RSLinx OPC Server].点:Group>>Add Group.取一个组名,(我这里是test),然后点OK.组创建以后,Item就激活了,点击:Item>>Add Item.在access path 填入你上面写的通道名(我这是ML1500) 在Item Name 处写入你要检视的单元名。
OPC Test Client 也可以测试其他的opc连接。
比如下图,我在开物组态中设置一个变量,通过opc就可在OPC Test Client 中看见。
好,结束,到此,你就可以配置你的上位机了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于OPC技术的上位机与PLC之间的通信
2008-10-31 11:02:00网络转载供稿1 引言
现代工业控制系统通常以pc机为上位机,通过与现场工控设备如plc的数据交换与处理,实现对生产过程的自动控制。
对于小型控制系统,采用专门的组态软件成本太高,用vb设计监控系统则可以降低成本,但首先要解决上位机与plc之间通信问题。
以往使用较多的进程间通信方式是dde(动态数据交换)方式,随着opc技术的发展和普及,它已成为工业过程控制的通信标准。
opc服务器有两类接口,其中自动化接口主要用于vb、delphi等开发工具。
本文利用罗克韦尔公司提供的opc接口,用vb编写了客户端应用程序,实现了上位机与ab可编程控制器之间的数据交换。
2 opc技术简介
opc(ole for process control—用于过程控制的对象连接与嵌入)是一套以微软对象连接与嵌入ole、组件对象模型com、分布式组件对象模型dcom(distributed com)技术为基础,基于wind ows操作平台,为工业应用程序之间提供高效的信息集成和交互功能的组件对象模型接口标准。
opc 实际上是提供了一种机制,通过这种机制,系统能够以服务器/客户端标准方式从服务器获取数据并将其传递给任何客户应用程序。
这样,只要生产商开发一套遵循opc规范的服务器与数据进行通信,其他任何客户应用程序便能通过服务器访问设备。
opc服务器有两类接口:定制接口和自动化接口。
定制接口为c++程序服务,自动化接口为vb这一类可使用自动化对象的程序服务。
定制接口是服务商必须提供的,而自动化接口则是可选的,不过o pc基金会提供了一个叫做“自动化包装器”的动态连接库,用于在两者间转换。
opc数据存取规范规定的基本对象有三类:服务器(server)、组(group)和数据项(item)。
服务器对象包含服务器的所有信息,也是组对象的容器,一个服务器对应于一个opc server,即一种设备的驱动程序。
组对象除了包含它自身信息外,还负责管理数据项。
每一个数据项代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法对数据项直接进行操作,应用程序必须依靠数据项的容器组对象来对它进行操作。
3 通信实现
3.1 rslinx的配置
rslinx是ab可编程控制器在windows环境下建立工厂所用通信方案的工具,它不仅提供了多种网络驱动程序,而且提供了最快速的opc、dde和custom c/c++接口。
本设计中上位机与logix55 50控制器采用rs-232串口方式连接,在rslinx中要对df1网络驱动程序组态,设置串口特性:com 1、波特率19200bps、一个停止位、无奇偶校验、全双工、bcc校验码。
此外要使用rslinx的opc
接口作为服务器,还要在rslinx中对opc进行配置。
3.2 安装opc自动化接口服务
若要用vb开发opc应用程序,必须安装opc自动化接口服务,保证计算机系统目录下有opcdaa uto.dll。
opc基金会提供了一个叫做“自动化包装器”的动态连接库,从opc基金会的网站(www.op )可下载。
在vb环境中,按“工程”的子菜单“引用…”后,弹出对话框,选择其中的“r slinx opc automation 2.0”项,这样才能使用自动化接口。
3.3 程序设计
用vb编写了opc客户端应用程序,实现了上位机与logix5550控制器之间的通信。
主要程序代码如下:
(1)连接opc服务器
dim withevents myopcserver as opcserver …定义服务器对象变量myopcserver
dim withevents myopcgroup as opcgroup …定义opc组对象变量myopcgroup
set myopcserver = new opcserver
myopcserver.connect "rslinx opc server" …连接rslinx 的opc服务器
(2)添加opc组对象
set myopcgroup=myopcserver.opcgroups.add("group1")
…添加opc组对象myopcgroup.issubscribed= true
…设置该组数据为后台刷新
myopcgroup.isactive = true
…设置该组为激活状态
myopcgroup.updaterate=1000
…设置数据刷新时间为1000
(3)添加数据项
dim abitemids() as string
…项标识符
dim abclienthandles() as long
…客户端句柄
dim abserverhandles() as long
…服务器端句柄
dim aberrors() as long
dim i as long
itemcount=5
dim oopcitem as rslinxopcautomation.opcitem
for i = 1 to 5
abitemids(i) = "[" & txttopic & "]" & txtitem(i)…将topic名和标签名赋给项标识符abclienthandles(i) = i
…给客户端句柄赋值
next i
myopcgroup.opcitems.additems itemcount, abitemids, abclienthandles, abserverhandle s, aberrors
…添加数据项操作
(4)同步数据读写
opc数据存取有同步方式和异步方式两种。
异步读写数据复杂,需要与事件结合使用,与同步相比速度慢但准确性高。
同步读写数据简单,直接使用opcitem的方法即可。
dim one as opcitem
dim index as long
…index为标签顺序号
dim oneread as string
dim xie as string
set one = myopcgroup.opcitems(index)
one.read opccache
oneread = one.value
…读数据
one.write (xie)
…写数据
若只读取数据,可以使用datachange事件,当控制器中所要访问的数据一旦发生改变时将会触发该事件,并将该数据自动读到txtvalue文本框。
private sub myopcgroup_datachange(byval transactionid as long, byval numitems as l ong, clienthandles() as long, itemvalues() as variant, qualities() as long, timesta mps() as date)
…自动刷新数据
dim i as long
for i = 1 to numitems
txtvalue(clienthandles(i)) = itemvalues(i)
…获取项的值
txttime(clienthandles(i)) = timestamps(i)
…获取项的时间戳
txtquantity(clienthandles(i))=getqualitystring(qualities(i))
…获取项的品质
next i
end sub
(5)断开opc服务器
myopcserver.opcgroups.removeall
…移除所有opc group,空出资源
set myopcgroup = nothing
myopcserver.disconnect
…断开连接
4 结束语
利用本文介绍的方法,在实验室实现了上位机和plc之间的通信,图1是opc客户端设置界面。
此外我们还设计了城市供水监控系统,鉴于篇幅,监控界面不再一一列出。