问题:
WinAC的OPC服务器上什么信息是可用的?
解答:
OPC常规信息,创建项,项的同步和异步读取以及项的编写和监控均可从客户支持网页的条目6077526下找到。或者从因特网的http://www.opcfoundation.org中得到。
- WinAC OPC服务器上的监控项信息
所监控的项受制于项的登录状况和所在组的活化情况。OPCn服务器届时会检查这些项。如果有值的变化,就会触发一个事件到应用程序。OPCn服务器以一个可以自行设置的内部周期工作。对于 WinAC OPCn服务器,其最小的值为100ms。在这个周期内,OPCn服务器检查项并检查哪里需要触发一个事件到应用程序。这个步骤只有在当项能够从nOPC 高速缓冲存储器中被读取,并且其内容没有干扰时才有用。由于在nWinAC的OPCn服务器上的项总是能够从设备读取而从不从OPC缓冲读取,所以并不推荐用这个选项。同样的,不要忘记过程控制总是有干扰的(如模拟量输出)。因此事件的数量是无法预测的。
注意事项:
WinACnOPC服务器偶尔因值的一个变化而触发两个事件。第一个事件给出初步的内容而第二个事件则给出具体的内容。n当使用软直接键,而应用程序需要反馈时,这个属性会产生干扰。应用键来触发同步写并且由项的监控过程反馈出内容。 - 同步读取/编写
调用这个方法可使应用程序保持等待直到通讯结束。对于象由非保留命令方式的软直接键产生的关键信号,只能用这个方法。 - 异步读取/编写
这是通讯的最佳方法。数据传送被触发后应用程序江再次运行。每个事件均有传送成功与否的反馈。对于大量的数据和操作系统的同步低加载应选用此方法。提高性能
集合运算是设计高性能应用程序的最有效方法之一。
通过调用一个方法,可执行在一个组中创建或读写项的任务。为此作为编程人员就必须知道这将导致对OPC服务器周期以及低一级驱动程序界面的改变。总起来说,大量的周期改变会极大的降低性能。OPC接口为此也提供有集合运算。也就是说,对每个单独的项或一个集合运算中,可在一个回路中创建1000个项。后面的方法可以得到最佳的性能。
实例:
在VB中,在一个组中创建1000个项。如下所示:
FOR i=1 TO 1000
Item="MB" & i ‚ a variable is added to the Itemnstring -> MB1 to MB1000
MyGroup.OPCItems.AddItem (Item, ... )
NEXT
每个新添项调用都产生一个周期的改变。下列公式的性能更快:
FOR i=1 TO 1000
Items(i)="MB" & i
NEXT
MyGroup.OPCItems.AddItems (1000, Items, ... )
项被配置在一个数组中并随着OPC服务器的一个方法调用而存储在一个组中。不仅能通过集合运算提高性能,也可以通过定义所用的项来实现。
实例:
在VB中,要求一个1000字节的数据缓冲器。该缓冲区组织在CPU中的一个连贯的区域中。
FOR i=1 TO 1000
Items(i)="MB" & i
NEXT
MyGroup.OPCItems.AddItems (1000, Items, gServerHandles, ... )
MyGroup.AsyncRead (1000, gServerHandles, ... )
项的创建和读取可通过集合运算完成。每个事件都使用异步读取并提供数据。程序继续运行。
Items(1)="MB0:INT[1000]"
MyGroup.OPCItems.AddItems (1, Items, gServerHandles, ... )
MyGroup.AsyncRead (1, gServerHandles, ... )
另一个优化措施是把单独的项定义为一个数组。这个优化步骤用于从控制器中传送一个连贯数据区时。
关键字:
OPC技术规范,OPC基础,OPC通讯,客户服务器
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc341359.html