Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 使用OPC标签提高性能_Performance_Automation_Opc - Fatal编程技术网

Performance 使用OPC标签提高性能

Performance 使用OPC标签提高性能,performance,automation,opc,Performance,Automation,Opc,我正在使用一个名为Think'n'Do的基于PC的自动化软件包,该软件包可以实时处理、读取输入/控制逻辑/写入输出,所有这些都可以在最长50毫秒内完成。我们有一个OPC服务器,每10毫秒从PLC读取/写入标签。将标签写入PLC并读回写入的值(Think'n'Do(50ms)>OPC Server(10ms)>PLC(10ms)>OPC Server(10ms)>Think'n'Do(50ms))时会有很长的延迟。根据我的数学计算,该过程最多需要6秒才能完成,而实际只需要130ms 任何关于在何处

我正在使用一个名为Think'n'Do的基于PC的自动化软件包,该软件包可以实时处理、读取输入/控制逻辑/写入输出,所有这些都可以在最长50毫秒内完成。我们有一个OPC服务器,每10毫秒从PLC读取/写入标签。将标签写入PLC并读回写入的值(Think'n'Do(50ms)>OPC Server(10ms)>PLC(10ms)>OPC Server(10ms)>Think'n'Do(50ms))时会有很长的延迟。根据我的数学计算,该过程最多需要6秒才能完成,而实际只需要130ms


任何关于在何处查找或为什么需要这么长时间的想法都会很有帮助。

这取决于您如何配置OPC客户端来提取数据。在OPC中订阅组时,可以指定刷新率。这可能默认为1s甚至5s,具体取决于OPC客户端。OPC服务器对更新数据的频率也有限制。这仅适用于OPC客户端订阅数据更改事件的情况

另一种方法是对OPC服务器进行异步或同步读/写。还有几种阅读模式。由于您使用的是OPC,因此您可以使用任何兼容OPC的客户端来测试您的服务器,这将告诉您问题是出在Think'n'Do中的设置上,还是出在PLC/服务器上

我使用过的最好的通用OPC客户端是OPC快速客户端。您可以在此处使用顶级服务器获取它:。只需抓取顶级服务器演示并安装OPC快速客户端。您可以使用它连接到OPC服务器,浏览标签并查看数据的外观。我使用过的第二个最好的OPC客户端来自ICONICS(称为OPC Data Spy),可在此处找到:


使用OPC客户端查看读取数据的速度。确保正确设置了组刷新率。我认为这些工具也可以为您提供一些计时信息(但您可以很容易地计算出6秒的延迟)。

如果系统执行同步读取(阻塞I/O调用),然后实现应用程序的逻辑,然后同步写入(再次阻塞)然后你需要考虑到PLC有多个往返行程。 同步读取涉及App(请求)->OPCServer->PLC->OPCServer->App(结果)。这只是对一个项目的读取(尽管您可以一次性请求一组项目)

然后,类似的同步写入还涉及应用程序(写入)->OPCServer->PLC->OPCServer->App(完成)

异步读写和组读写有助于减少应用程序的阻塞,但请注意您的应用程序可以处理这种反同步行为


另一件要看的是PLC配置,在Allen-Bradley PLC上有一个interscan延迟设置,用于通过外部网络服务I/O请求。如果时间很短,并且数据带宽很高,那么这会减慢速度。

这里有几个地方可以看:OPC客户端配置、OPC客户端本身、OPC服务器或PLC本身

以下是您应该检查的事项:

  • OPC客户端配置-您添加了OPC标签的OPC组应具有快速扫描速率(即100毫秒到1秒,取决于您使用它的目的)。在编写值的过程中,您是否注意到值的输入是否更快?如果不是,则可能存在DCOM或网络配置问题
  • OPC客户端-下载一个免费的OPC客户端软件(可能来自OPC基金会网站或主要的OPC服务器软件供应商),看看你是否更快地获得这些值。如果是这样,您的客户可能会有问题
  • OPC服务器-某些OPC服务器具有诊断工具。打开这些选项,查看写入实际发生的时间和读取实际发生的时间。如果您能回答这些问题,您可能可以确定延迟的罪魁祸首是PLC还是OPC服务器。还要观察OPC服务器的CPU使用情况,如果您注意到它使用的CPU比正常情况下更多,这可能意味着OPC服务器已加载,这可能会降低性能
  • 其他-最后检查PLC,网络是否正常工作

  • 听起来好像您没有使用OPC服务器中的缓存。通常,OPC服务器有一个缓存,如果您的客户端连接,并且没有指定要使用缓存,则无法获得所需的性能。OPC服务器负责从设备中刷新缓存,尽管刷新标准可能因OPC服务器而异