【发布时间】:2014-01-15 16:22:05
【问题描述】:
我已尽力搜索有关 SCADA 和开发您自己的 C++ 桌面应用程序以与 PLC 通信的所有主题,但找不到任何最近或在我看来符合我需要的相关主题。如果我错过了他们,将非常感谢他们的链接。如果我也碰巧在错误的版块中发布了此内容,或者您可以想出一个更好的版块让我将其发布到那里,我会把它带到那里。
话虽如此,我提前感谢您抽出宝贵时间阅读我的问题,并感谢您提供的任何意见。
关于我在做什么的一点点
我目前在学校学习机电工程,在我最后一年的项目中,我正在用 C++ 开发一个桌面应用程序,以监控我们在一个实验室中的 PLC。
在这个实验室中,我有一个预先存在的以太网网络,将所有 PLC 连接到单点,我正在将其与 PC 绑定,并将从那里完成我的所有工作。
我将在 Qt 中开发应用程序,以便以一种简单的方式设计 GUI,并允许我访问 QNetworkInterface 以及 QTcpSocket。
话虽如此,我不会说我是一位经验丰富的程序员,但我已经用几种语言(即:python、c++、c、php)混了好几年了,我还在学习,考虑到学习永远不会停止。
我的问题
是否有任何我可以阅读的参考资料,您可以提出建议,以便更轻松地了解我需要通过什么样的过程来接收信息(即:单个 I/O、状态位、标签、日志等)直接从 PLC 获取,而不是通过 OPC 服务器?
1234563想远离 excel,如果可能的话,还想远离 OPC 服务器 (RSLinx))。对于对 OPC 服务器主题一无所知的人,或者据我所知,一般 OPC,您有什么建议?
你们中的任何人以前是否曾编写过自己的应用程序来完成与我想要完成的任务类似的事情(如果性质不同的话)?
对于正在尝试此类项目的人,您有什么建议或建议?
PS:作为这个项目的开始,我最初只是想读取 I/O(标签或地址)以查看它们的当前值是什么(关闭或打开)输入,通电或不输出)。但最终我还希望能够根据我从它们那里收到的值将值写入我正在监控的 PLC 上的标签。
PSS:我想再次指出,我仍然是一名学生,并且仍在全面了解这门学科。想请大家耐心等待,我第一次可能无法完全掌握!
如果我错过了您认为能够提供答案的任何信息,请告诉我!我会尽力及时提供上述信息!
谢谢!
EDIT #1:在另一个问题中添加,并稍微改变了我的第一个问题
编辑 #2:修正问题 2
【问题讨论】:
-
如果已经有OPC Server,直接轮询PLC会不会导致端口冲突,或者两者可以同时存在?由于每个 PLC 都不同,因此使用 OPC 服务器启动并计算需要哪些标签可能会更快。 OPC 所做的就是为您提供所有这些接口的一致接口。
-
如果它在 excel 中工作,您可以在 javascript/vbscript 中将其作为 hta。它不能移植到 Linux,但可以在任何 Windows 平台(95 或更高版本)上运行。
-
OPC 为您提供的是一个可以查询的 ODBC 数据库。为什么不分两个阶段进行:首先确定使用 OPC 和 ODBC 的 GUI 会是什么样子。同时您可以计算出用于控制 PLC 的变量。完成后,尝试直接与 PLC 对话。如果没有足够的时间来完成它,那么至少您可以显示控制 GUI。您也可以将 OPC 添加到您的简历中,因为它是一个众所周知的标准。您可以在代码中放置一个开关,用于选择是直接通话还是通过 OPC 通话
-
plc 连接是一个主要的安全线程,这就是为什么你对处理目前存在的东西感到困惑的原因。 Opc 最初被设计为微软进入由主机制造商统治的工业计算的后门。 Opc-ua 引入了多平台可移植性(即使对于嵌入式东西),但仍保持其精心设计的不透明性。控制是我们经济中的关键点,工厂巴士很受那些不想放松控制的人的关注......
-
MQTT 将(或不会)领先一步,由监管机构为现场总线互连释放一些压力