我来自C / C ++背景,其中很多都是嵌入式系统环境。这些嵌入式系统都没有涉及到PLC - 让一个CPU完成它所有的C / C ++逻辑从来没有意义,然后放弃对其他设备的I / O控制(通常)你可以自己做,因为I / O直接连接到您的CPU。
随着EtherCAT的出现,我们看到了将I / O转移到EtherCAT上的优势,因为它具有灵活性,模块化等优点。但是,驱动大量EtherCAT硬件的首选模式似乎是通过PLC。对于Beckhoff TwinCAT PLC环境,尝试绕过PLC似乎在技术上很难或很昂贵,或者两者兼而有之。
这让我们想知道很多关于PLC的事情......从以下开始:
答案 0 :(得分:3)
只是为了涵盖串行和并行的两种解释-PLC逻辑处理是顺序的。
大多数PLC可通过串行,USB或以太网连接进行编程
关于PLCs'的设备。连接到,它们通常是串行的。例如,许多工业控制系统网络使用Profibus,这是一种基于串行总线的通信 - 通常Profibus使用RS-485串行接口。我真的不能想到一个我看过并行通信的地方。大多数是串行 - MODBUS,DeviceNet等....并行,你会遇到布线,噪音,长距离等额外成本的问题。
是的PLC语言图灵完整,但可能不如其他编程语言方便。例如,使用西门子PLC,您可以选择如何实现逻辑 - 梯形图,S7图形(这些是基于图形的),语句列表(基于指令),功能块图,结构化控制语言(类似) 到Pascal)。这是一篇很好的文章,将PLC编程语言与如何选择语言http://www.automation.com/pdf_articles/IEC_Programming_Thayer_L.pdf
的指南进行比较PLC扫描时间是PLC读取输入,执行整个程序并根据刚处理的逻辑相应更新输出所花费的时间。 PLC扫描时间不确定,因为它取决于输入,输出,定时器,存储器等。通常在需要速度的地方使用PLC - 对于较慢的过程,可以使用DCS。通常会看到执行时间在4-6毫秒之间。对于大多数PLC,您可以修改默认的最大循环监视时间。如果此时间到期,可以命令CPU停止或使用所需逻辑触发中断。请注意,在许多情况下,大于1秒的扫描时间是不合适的"!
我发现根据我的经验,我所使用的几乎所有PLC都不是由简单的梯形逻辑网络组成的。 PLC不是物理继电器的简单表示。它们用于控制与多种不同设备/设备交互的复杂的安全关键过程。此外,在大多数情况下,您需要实施SCADA系统,并且您可能需要考虑企业级应用程序(MES,ERP)系统。许多过程需要复杂的调度和逻辑控制算法 - 小瓶灌装,生物制药,电气,油和水。天然气......有很长的清单。根据上述链接,它取决于您的需求,但现代流程通常需要更多的由一些梯形网络组成的简单程序
答案 1 :(得分:0)
更“现代”的编程语言(实际上ST比C更现代)通常意味着程序也更复杂,这在PLC世界中应该避免。它们是实时机器,其中循环时间,可维护性,稳健性和清晰度远比普通PC(不是RT)和嵌入式世界重要。如果PLC的编程方式与大多数手持设备相同,那么我们将生活在灯光开启的世界中,因为编程错误导致动力装置刚刚倾斜。
Murrays的答案比我写的要好,但由于我无法发表评论,我想强调我在这里写的这些部分。
答案 2 :(得分:-1)
最简单的方法是使用OPC。
OPC工作非常简单。它包含一个与PLC通信的OPC服务器和一个与OPC服务器通信的客户机。 OPC服务器是与PLC通信的现成产品。 在您的代码中,您使用OPC库与OPC服务器进行通信。
这将为您节省大量编程时间,并尝试了解PLC如何通信/操作。重点将放在你的真实'代码,而不是PLC部分。
请访问www.opcfoundation.org了解更多详情。