当前位置: 首页 > news >正文

用python开发网站申请域名

用python开发网站,申请域名,半成品个人在家加工,网站软文设计asyncua是OPCUA的python实现#xff0c;使用起来非常方便#xff0c;其github地址是https://github.com/FreeOpcUa/opcua-asyncio UaExpert是OPC UA Client的GUI工具#xff0c;当编写好server代码后并运行#xff0c;我们可以使用UaExpert去和server进行通信。UaExpert使…asyncua是OPCUA的python实现使用起来非常方便其github地址是https://github.com/FreeOpcUa/opcua-asyncio UaExpert是OPC UA Client的GUI工具当编写好server代码后并运行我们可以使用UaExpert去和server进行通信。UaExpert使用教程参考https://blog.csdn.net/watsoncheung/article/details/124268979 1. OPCUA的两种工作方式 客户端/服务器模式在这种模式下OPC UA 客户端向 OPC UA 服务器请求数据服务器接收请求并向客户端发送数据。 发布/订阅模式在这种模式下OPC UA 服务器将数据“发布”到网络上而客户端可以“订阅”特定的数据。当服务器更新数据时客户端会收到更新的数据。 这两种模式可以根据应用场景的需要进行选择。例如客户端/服务器模式适用于客户端需要向服务器请求单个数据项的情况而发布/订阅模式则适用于客户端需要定期接收大量数据的情况。 OPC UA Server示例代码 import logging import asyncio from asyncua import Serverlogging.basicConfig(levellogging.INFO) _logger logging.getLogger(asyncua)async def main():# 创建serverserver Server()# 初始化serverawait server.init()# 设置server的endpoint地址server.set_endpoint(opc.tcp://192.168.5.86:4840/freeopcua/server/)# 设置server的名字server.set_server_name(MyOPCUAServer)# 设置自己的namespace也可以不做uri http://examples.freeopcua.github.ioidx await server.register_namespace(uri)# 在上面的namespace下添加一个对象名叫MyObjectmyobj await server.nodes.objects.add_object(idx, MyObject)# 在MyObject下添加一个变量名叫MyVariable初始值是6.7myvar await myobj.add_variable(idx, MyVariable, 6.7)# 设置改变量为可写await myvar.set_writable()_logger.info(Starting server!)# 让server一直运行async with server:while True:await asyncio.sleep(1)if __name__ __main__:asyncio.run(main())OPC UA Client示例代码 import asyncio from asyncua import Clientasync def main():url opc.tcp://192.168.5.86:4840/freeopcua/server/async with Client(urlurl) as client:uri http://examples.freeopcua.github.ioidx await client.get_namespace_index(uri)var await client.nodes.root.get_child([0:Objects, f{idx}:MyObject, f{idx}:MyVariable])print(My Variable, var, await var.read_value())if __name__ __main__:asyncio.run(main())在asyncua模块中添加OPC UAOLE for Process Control Unified Architecture的发布订阅模式通常涉及几个关键步骤 创建OPC UA客户端 使用asyncua.Client类创建一个OPC UA客户端实例并指定OPC UA服务器的URL。 创建订阅处理器 定义一个类作为订阅处理器该类将处理从OPC UA服务器接收到的数据变化通知。在类中实现datachange_notification方法该方法将在数据变化时被调用。 创建订阅 使用客户端实例的create_subscription方法创建一个订阅。传递订阅的发布间隔以毫秒为单位和之前定义的订阅处理器实例作为参数。 订阅节点 获取要订阅的OPC UA节点的引用。使用订阅实例的subscribe_data_change方法订阅这些节点。 处理订阅 在主循环中使用await asyncio.sleep(some_interval)来保持程序运行并允许异步事件如数据变化通知被处理。 异常处理和关闭 确保在退出程序时妥善处理任何异常并正确关闭客户端和订阅。 发布/订阅模式Client订阅数据改变代码示例 from asyncua import Client, ua, Node import asyncio class SubscriptionHandler: def datachange_notification(self, node: Node, val, data): print(fNode {node.nodeid} value changed to {val}) async def main(): url opc.tcp://[OPC_UA_SERVER_IP]:[PORT] async with Client(urlurl) as client: handler SubscriptionHandler() subscription await client.create_subscription(500, handler) # 500ms 发布间隔 # 假设我们要订阅的节点ID node_to_subscribe ns2;sSomeNodeToSubscribe node client.get_node(node_to_subscribe) await subscription.subscribe_data_change([node]) # 保持程序运行以接收通知 while True: await asyncio.sleep(1) if __name__ __main__: asyncio.run(main())2. OPC UA的一些基本概念 OPC UA地址空间中具有八种基本的节点类型分别是数据节点、变量节点、对象节点、方法节点、引用节点、视图节点、变量类型和对象类型。每种节点对应的含义如图1所示。 数据类型节点(DataType)。数据类型节点描述了变量节点中变量的数据类型。在OPC UA信息模型在命名空间0中定义了多种内置的数据类型包括整型、浮点型、字符串等多个类型能对变量的数据进行准确的描述。也可以自定义数据类型比如描述二维坐标的2DPoint描述设备运行模式的MachieMode等类型获得更符合数据本身的描述。 变量节点(Variable)。该节点是变量类型节点的实例也是使用的最多的节点。客户端访问设备数据有3种方式。第一种是手动将设备多模态数据写入对应的变量节点然后客户端读取对应节点内保存的数值。方式一缺点在于如果客户端要获取设备最新的值需要一直手动去触发对设备数据源的读取请求。第二种方式通过给变量节点添加回调函数在客户端发起读取请求后再由服务器向设备数据源发起读取请求将取得的数据写入节点再从节点读取数据发送到客户端中。方式二节省了无谓的读取消耗。第三种方式将客户端的读取请求直接重定向到设备的数据源中即客户端直接从数据源获取数据变量节点不存储数据。方式三缩减了数据先写入变量节点再进行读取的过程但多个客户端连接访问同一数据时会增大服务器与设备之间的传输负载而方式二中服务器可对时间戳进行判断后直接返回节点中保存的数据。在实际连接服务器与设备数据源的过程中可以灵活结合方法二和方法三方法一仅适用于极少数情况。 对象节点(Object)。将对象类型实例化即可得到对象节点该节点是设备在数字空间的映射。所有对设备数据的访问都能在该模型中访问到对应的数据节点。所有对设备的控制都转换为方法节点的触发。设备产生的消息在节点对象中将触发对应的事件。 方法节点(Method)。方法节点是对设备控制方法在数字模型中的映射。方法节点可以通过服务器或客户端进行调用然后将会对设备的控制器发送指令使得设备执行对应的操作。常见的方法节点有电机的正反转、点动、设备返回原点、伺服通断电等。 引用类型节点(ReferenceType)。引用类型描述了引用的语义而引用用于定义引用两端的节点之间的关系。最常用的引用类型如层次结构引用节点(Organize)表示节点之间的层级关系如同文件夹与文件夹内的文件数据层级复杂的设备需要通过多种引用类型对设备信息节点之间的关系进行描述。 视图节点(View)。视图节点可将地址空间中感兴趣的节点提取出来作为一个子集视图节点作为该子集的入口方便客户端浏览。 变量类型节点(VariableType)。该节点提供了对变量节点的定义是设备中各种数据的抽象。常用引用中的对象类型定义引用节点(HasTypeDefinition)连接数据类型节点对数据类型进行描述。用属性引用节点(HasProperty)对数据的语义进行描述。也可以使用自定义的数据类型节点对变量的数据进行描述具有灵活性。 对象类型节点(ObjectType)。提供对象的定义即对象的抽象与类相当且子类可以继承父类的特征方便模型的扩充。该节点包括对象的各种数据类型数据的语义以及控制方式。OPC UA命名空间0中规定了多个基础的对象类型节点。如使用最广的基础对象类型(BaseObjectType)所有对象类型节点都需要继承该节点再进行扩充。在对具体设备建模的过程中应该将设备组成的各部分分解为不同的对象分别建模再用引用节点将各部分按照实际设备中的关系相关联从而得到完整设备的对象类型节点。 上述内容引用自专利《基于OPCUA协议的制造装备多模态数据智能解析方法》 OPC UA的建模实际上是节点与节点之间的引用节点可以根据不同的用途归属于不同的节点类别。在OPC UA中最重要的节点类别是对象、变量和方法。对象可以拥有变量和方法而且可以触发事件。 引用自专利《基于轨道交通的综合监控系统的事件存储方法及其设备》 2.1 OPC UA的地址空间模型中节点属性、变量和数据的区别 在OPC UAOLE for Process Control Unified Architecture的地址空间模型中节点属性、变量和数据各自扮演着不同的角色它们共同构成了OPC UA信息模型的基础。以下是关于这三者区别的详细解释 节点属性Attributes 定义属性用于描述节点的基本信息和特性。它们提供了关于节点类型、名称、描述、访问级别等的元数据。特点 是节点的基本组成部分之一每个节点都可以有多个属性。属性的值可以是各种数据类型如字符串、整数、浮点数等。属性是静态的即它们的值在节点创建时确定并且通常不会在节点的生命周期内改变。 作用属性帮助客户端理解和使用节点提供了关于节点功能和行为的上下文信息。 变量Variables 定义变量节点代表地址空间中的一个值这个值可以被客户端读取、写入和订阅变化。特点 变量节点具有数据类型和值数据类型定义了值的类型和格式。变量的值可以是简单的如单个数值也可以是复杂的如结构体或数组。变量的值在节点生命周期内是可以变化的客户端可以实时获取这些变化。 作用变量用于表示工业自动化系统中的实时数据如传感器读数、设备状态等。通过读取和写入变量值客户端可以与服务器进行交互实现数据的监控和控制。 数据Data 定义在OPC UA中“数据”通常指的是存储在变量节点中的值。这些数据可以是任何类型的信息包括实时测量值、配置参数、事件通知等。特点 数据是动态的可以随着工业自动化系统的运行而实时变化。数据的类型和格式由变量节点的数据类型决定。数据可以被客户端读取、写入和订阅变化以实现数据的实时处理和响应。 作用数据是工业自动化系统的核心组成部分它反映了系统的实时状态和运行情况。通过处理和分析这些数据可以实现系统的监控、控制、优化和决策等功能。 总结 节点属性提供了关于节点的静态信息用于描述节点的特性和行为。变量是地址空间中的动态元素用于表示实时数据并允许客户端与服务器进行交互。数据是存储在变量节点中的值反映了工业自动化系统的实时状态和运行情况。 这三者共同构成了OPC UA地址空间模型的基础为工业自动化系统中的通信和数据处理提供了强大的支持。 2.2 opcua节点类型枚举 opcua预定义的8种节点类型 ObjectNode ObjectTypeNode VariableNode VariableTypeNode MethodNode ReferenceTypeNode DataTypeNode ViewNode2.3 opcua数据类型枚举 1. Null 0 2. Boolean 1 3. SByte 2 4. Byte 3 5. Int16 4 6. UInt16 5 7. Int32 6 8. UInt32 7 9. Int64 8 10. UInt64 9 11. Float 10 12. Double 11 13. String 12 14. DateTime 13 15. Guid 14 16. ByteString 15 17. XmlElement 16 18. NodeId 17 19. ExpandedNodeId 18 20. StatusCode 19 21. QualifiedName 20 22. LocalizedText 21 23. ExtensionObject 222 4. DataValue 23 25. Variant 24 26. DiagnosticInfo 25#实例 1. ua.VariantType.Boolean 2. ua.VariantType.String 3. ua.VariantType.Int16 4. ua.VariantType.Int32 5. ua.VariantType.UInt32 6. ua.VariantType.Float 7. ua.VariantType.Byte2.4 opcua节点规则 NodeId节点规则ns命名空间索引;标识符类型标识符 命名空间索引 ns表示命名空间索引一般为2通常Namespace 0用于标准节点Namespace 1用于服务器特定的节点 标识符类型枚举: i-数值 s-字符串 g-全局唯一标识符 (GUID) b-不透明值ByteString 中的命名空间特定格式2.5 OPC UA的事件 OPC UA中的事件通常是通过订阅Subscription和监视项MonitoredItem来处理的而不是通过直接的Event类。 以下是一个简化的步骤展示了如何在OPC UA客户端中设置订阅和监视项以接收服务器上的事件。 连接到OPC UA服务器。创建一个订阅Subscription。在订阅中创建一个或多个监视项MonitoredItem指定要监视的节点通常是事件源节点。等待并处理从服务器发送的事件通知。 2.6 OPC UA的监控项、订阅和通知 学习链接https://www.cnblogs.com/jiyuqi/p/9639034.html 学习资料https://github.com/FreeOpcUa/opcua-asyncio OPCUA的Client监控Server的界面https://github.com/FreeOpcUa/opcua-client-gui
http://www.hkea.cn/news/14305149/

相关文章:

  • 高端网站开发平台北京保障性住房建设投资中心网站
  • 网站建设需要什么软件wordpress安装插件500
  • 最适合seo的网站源码怎么让百度收录网址
  • 云南省滇中引水工程建设管理局网站wordpress 简约博客
  • 做网站用php还是jsp百度网页版入口链接
  • 长春网站优化方式企业网站的建立
  • 建设地方性宠物网站商业门户网站制作
  • 广东深圳住房和城乡建设部网站WordPress仿制
  • 如何在电脑里做网站合肥网站设计服务
  • 门户网站建设需求文档软文文章
  • 中国制造网国际站桂林网上服务
  • 物流建设网站总结网站 图文混编
  • 网站建设1000zhu青岛关键词优化平台
  • 睢宁县建设局网站常用的网络营销推广方法有哪些
  • 谷歌浏览器下载手机版安卓官网青岛seo服务公司
  • 医疗网站怎么做推广广告设计和平面设计有什么区别
  • 凡科建站官网网站模板商城网站模版代码
  • 桃浦做网站西安网站建设小程序
  • 网站做什么内容赚钱如何自己做网站的优化推广
  • 互利互通网站建设外贸业务员如何开发客户
  • 怎么用自己电脑做服务器发布网站吗哈尔滨关键词优化排行
  • 网上医疗和医院网站建设制作机构组织网站建设
  • 网站案例网站建设注册商标怎么注册商标
  • 做企业网站需要准备什么资料wordpress商城自动发货
  • 龙华网站建设方案书例文简单静态网页制作
  • 重庆高铁建设网站做网站需要学会做哪些东西
  • 做软件下载网站违法吗本地wordpress搬家
  • 怎么在网站上面做悬浮广告中国建设银行吉林省分行官网站
  • 做网店有哪些网站青岛市建设工程
  • 包头正规旅游网站开发哪家好吉林省长春市建设局网站