我是编程新手,正致力于通过在WAGO或Modbus驱动程序包装器上部署HTML 5,将实时数据从PLC推送到网页。老实说,我试图研究,但不知道从哪里开始。它将是一个封闭的私人网络,几乎没有外部网络的影响。我只想展示一条实时信息来证明概念。基本上我正在尝试自定义设计Groov程序。
答案 0 :(得分:0)
您可能希望了解如何使用OPC。凯谱华& SoftwareToolbox只是众多供应商中的两家,它们提供的工具可以帮助您按照自己的方式获取数据 有一个现有的工具可以做你想要的,但我认为你必须从头开始写一个。如果您有兴趣查看它的想法,现有工具是http://www.softwaretoolbox.com/cogentdatahub/。
答案 1 :(得分:0)
幸运的是,您无法将数据推送到浏览器。 如果可以的话,互联网将变得更加混乱。 要解决此问题,请让您的网页包含一个用JavaScript编写的计时器。 每说1秒。它向服务器发出一个AJAX请求(例如使用jQuery实现),然后提供(几乎)实时数据。 然后,网页在某些DOM元素中显示该元素,例如,一个空的DIV。 所以它是浏览器轮询你的服务器。
@BlueDog
数据几乎是"实时,因为每秒采样一次会产生至少一秒的延迟。在理想情况下,只要数据发生变化,就会将其推送到浏览器。不幸的是,浏览器无法知道任何改变,所以它能做的最好的事情是经常"问"更新(投票)。
延迟多少取决于您的轮询频率。如果它每秒一次,则必须添加用于传输页面请求和服务器的回复的延迟。传输时间取决于您的网络(可能是互联网,涉及所有不确定性)。如果所涉及的主干具有足够的容量,我预计整体延迟在1到1.5秒之间。通过专用网络和更频繁的轮询,我预计0.5秒应该是可能的。然而,这些是估计的平均值。如果我通过互联网请求页面而我的提供商(再次)有问题,可能需要几个小时才能收到我想要的内容。病毒扫描程序和操作系统更新等内容也可能破坏您的游戏。
所以,实际上:通过良好的宽带连接,稳定的浏览器和正确的流程优先级,应该可以在95%的时间内获得低于1秒的总延迟(包括轮询时间间隔)。准备好每隔几天重启客户端。大多数浏览器泄漏内存,大多数操作系统也会这样做。
答案 2 :(得分:0)
我已经能够使用python和modbusTCP以及Raspberry pi作为网络服务器与PLC连接。 Python是一种快速且易于学习的语言。 Websockets是最适合实时数据的HTML5组件。 简单的连接代码(安装完所有内容后):
~/.ssh
在这里找到:
http://simplyautomationized.blogspot.com/2013/09/home-automation-project-2-rpi-light.html
可以使用以下示例创建websocket广播服务器:
http://simplyautomationized.blogspot.com/2015/09/raspberry-pi-create-websocket-api.html