完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
OPC UA编程实现 — 基于Python
FreeOpcUa,是使用Python开发基于OPC统一架构的优选第三方库。 创建一个OPC服务器的步骤非常简单: from opcua import Serverserver = Server() # 实例化一个UA服务器server.set_endpoint(“opc.tcp://0.0.0.0:48400/freeopcua/server/”) # 设定服务器URIserver.start() # 启动UA服务器 测试所创建的UA服务器,建议可以使用UaExpert,它可以实现UA客户端的功能。 软件打开后,右键“Servers”,添加新连接 在“Custom Discovery”下双击,并填入上面代码中设定的服务器URI 上步添加完URI后,会扫描到Python中创建的UA服务器,选择“Anonymous”,建立连接 连接成功后在主页面能够看到OPC UA规范定义的标准地址空间结构 对于如何通过FreeOpcUa,创建自己的地址空间,项目源代码Examples文件夹下的server-example.py文件进行了举例。这里要介绍的是如何通过XML文件来编辑地址空间。 在XML文件中创建节点和分配引用,是非常非常棒的一种方法。 编写XML文件,首先添加命名空间,主要包括节点类、数据类型以及W3C标准。 《?xml versio encodin ?》《UANodeSet xmlns=“http://opcfoundation.org/UA/2011/03/UANodeSet.xsd” xmlns:ua xmlns:xs xmlns:xs》《/UANodeSet》 1. 创建对象节点 《UAObject NodeI BrowseNam ParentNodeI》 《Description》《/Description》 《DisplayName》《/DisplayName》 《References》 《Reference ReferenceTyp IsForwar》《/Reference》 《/References》《/UAObject》 填写正确的NodeId,用于明确标识节点 填写BrowseName,作为浏览地址空间时的非本地化名称 填写ParentNodeId,在实例化时非常关键,与ModelParent相关,如果不对实例声明进行明确指定,会导致无法实例化 分配引用,需要注意每种引用可以使用的次数(在节点类学习心得中进行了总结中) 2. 创建变量节点 《UAVariable NodeI BrowseNam DataTyp ParentNodeI AccessLeve UserAccessLeve》 《Description》《/Description》 《DisplayName》《/DisplayName》 《References》 《Reference ReferenceTyp IsForwar》《/Reference》 《/References》 《Value》《/Value》《/UAVariable》 AccessLevel,设定访问方式,可读可写或其他 Value,定义节点Value属性 一个简单的例子 from opcua import Serverserver = Server()server.set_endpoint(“opc.tcp://0.0.0.0:48400/freeopcua/server/”) # 设定服务器URIserver.import_xml(“custom_nodes.xml”) # 导入XML文件server.start() 在上例中,首先添加了一个类型为文件夹的对象节点MyXMLFolder,通过HasTypeDefinition设定其类型为FolderType,用于组织地址空间中的节点,并使用Organizes引用将它组织到Root下的Objects节点下 然后在文件夹节点下添加了一个名为MyXMLObject的对象节点,通过HasTypeDefinition引用设定其类型为BaseObjectType,并使用Organizes引用将它组织到MyXMLFolder节点下 在MyXMLObject对象节点下创建一个变量MyXMLVariable,数据类型设定为字符串型,节点类型为BaseVariableType,设定Value属性来赋予初始值“StringValue” 在MyXMLObject对象节点下添加一个特性MyXMLProperty,需要使用HasProperty引用,节点类型设定为PropertyType,数据类型为32位的UInt,并赋予初始值76 一个复杂的例子 创建一个自定义的对象类型节点,然后通过实例化该类型节点得到一个复杂的对象节点。 |
|
|
|
只有小组成员才能发言,加入小组>>
934浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 09:30 , Processed in 0.697843 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号