我来自C/C++背景,其中很多都是嵌入式系统环境下的。所有这些嵌入式系统都没有涉及到PLCs -让一个CPU来完成所有的C/C++逻辑,然后把I/O的控制权交给其他设备,而(通常)你可以自己做,因为I/O直接连接到您的CPU,这是没有意义的。
随着EtherCAT的出现,我们看到了将I/O转移到EtherCAT上的优势,因为它具有灵活性、模块化等特点。然而,驱动大量EtherCAT硬件的首选方式似乎是通过一个可编程控制器。在贝克霍夫TwinCAT环境中,试图绕过PLC似乎在技术上是困难的,或者是昂贵的,或者两者兼而有之。
这让我们想知道很多关于PLC的事情..。首先:
发布于 2014-10-23 21:14:50
只是为了涵盖串行和并行-PLC逻辑处理的解释是顺序的。
大多数PLC可以通过串行、USB或以太网连接编程
至于PLCs所连接的设备,它们通常是串行的。例如,许多工业控制系统网络使用基于串行总线的Profibus通信,通常Profibus采用RS-485串行接口。我真的想不出有什么地方我看到过并行通信。大多数是串行MODBUS,DeviceNet etc....with并行,你有问题的额外成本,布线,噪音,长途等。
是的,PLC语言是图灵完整的,但可能没有其他编程语言那么方便。例如,使用西门子PLC,您可以选择如何实现逻辑梯、S7图(这些是基于图形的)、语句列表(基于指令)、功能块图、结构化控制语言(类似于Pascal)。这是一篇很好的文章,比较了PLC编程语言和如何选择语言L.pdf的指南。
PLC扫描时间是指PLC读取输入、执行整个程序、根据逻辑处理相应更新输出所需的时间。PLC扫描时间不是确定性的,因为它取决于输入、输出、定时器、内存等。通常在需要速度的地方使用PLC--对于速度较慢的过程,可以使用DCS。通常情况下,执行时间在4-6 ms之间。使用大多数PLC,您可以修改默认的最大周期监视时间。如果这一时间到期,CPU可以命令停止,或者中断可以用所需的逻辑触发。注:在许多情况下,大于1秒扫描时间是“不可取的”!
我发现,根据我的经验,我所做的PLC几乎都不是由简单的梯形逻辑网络组成的。PLC不是物理继电器的简单表示。它们用于控制复杂的、通常是安全的关键过程,与多种不同的设备/设备交互作用。在大多数情况下,您需要实现SCADA系统,并且您可能需要考虑企业级应用程序(MES,ERP)系统。许多过程需要复杂的调度和逻辑控制算法--小瓶填充、生物制药、电气、石油和天然气…。.there是一个很长的列表。根据上面的链接,它取决于您的需要,但是现代的过程通常要求比由几个阶梯网络组成的简单程序更多的需求。
发布于 2016-05-06 02:30:11
更“现代”的编程语言(实际上ST比C更现代)通常意味着程序也更复杂,这在PLC世界中是应该避免的。它们是实时机器,在这些机器中,循环时间、可维护性、健壮性和清晰度比普通PC (不是RT)和嵌入式世界重要得多。如果PLC的编程方式和大多数手持设备一样,我们就会生活在这样一个世界里,在这个世界上,开着灯完全是随机的行为,因为动力装置只是因为编程错误而倾斜。
穆雷的答案比我所写的要好,但由于我还不能发表评论,所以我想在这里强调我写的这些部分。
https://stackoverflow.com/questions/26518746
复制相似问题