可以用PLC通过modbus代替PLC中的逻辑梯形图程序吗?

时间:2016-01-22 22:14:06

标签: python linux raspberry-pi modbus plc

试图找出使用Raspberry Pi / linux服务器控制工业PLC的最佳方法 - 特别是在以太网上使用python和pymodbus(modbusTCP)......

一旦PLC内部注册表正确映射到modbus,用python编写的软件可以代替PLC中的梯形逻辑编程并完全控制它吗?

或者还是需要编写梯形逻辑/本机PLC代码吗?

5 个答案:

答案 0 :(得分:6)

您不应该使用Linux服务器替换PLC逻辑。你需要实时操作系统。即使运行实时操作系统和用它控制PLC也是一个坏主意。 PLC-s内置了各种检查功能,用于控制输入/输出,程序循环,内部诊断等。它们是专门用于该任务的工具。 IMHO梯形逻辑比实时操作系统更容易学习。

您应该将您的服务器用作HMI - 人机界面,将控制数据发送到PLC并将其显示给用户。

如果你的项目是为了学习经验或个人项目,那么你当然应该做任何你想做的事。

答案 1 :(得分:1)

我不知道你是否可以在你正在讨论的特定配置中这样做;事实上,你不会说你正在使用哪种PLC,所以我怀疑任何回复者都可以告诉你。

但是假设您可以在技术上连接这些部件,您可能会发现性能不足以真正实现可靠的机械控制。

通常,PLC每秒运行数百次,每次采样输入和计算新输出。这足够快,所以力学有效地看到了#34;平滑"控制。 (5 Hz可能会引起硬件的机械抖动和抖动)。

如果你"涉及"用于计算的Python,不知何故,您需要支付从PLC到Python的总线通信时间,Python唤醒时间,Python执行时间以及Python消息打包/解包时间。我怀疑你能否以每秒几百次的速度可靠地实现所有这一切(当操作系统中断Python将10M数据写入磁盘以进行其他后台处理时会发生什么?)

如果你坚持以某种方式涉及Python,那么它应该仅以咨询角色行事。也就是说,PLC完成所有工作(例如,您需要"梯形逻辑/...## 34;要编写)但Python代码会偶尔向PLC发送消息以改变其整体行为,例如,控制模式,进给速率等

答案 2 :(得分:1)

我们假设您拥有非常高效的代码。你创建了一些词典,做了一些lambda。您可以在5ms内循环通过2000个IO点的逻辑集。

我每天都在Lua这样做。 PLC硬件基于FPGA。但永远扫描速度不超过10毫秒。使用数据会减慢它们的速度。并且通常最终扫描25ms。

正确编程的Python和Lua可以在1-200行扫描2600行代码。

您需要一个C包装器来运行扫描。使用TCP modbus设备。并且每个IP地址永远不会超过32个IO。这实际上很容易。

那些不了解PLC或只知道PLC的人会引导你走错方向。做你的作业。学习Lua。然后证明他们错了。

希望有所帮助。

答案 3 :(得分:0)

此视频看起来像是一个很好的起点:

https://www.youtube.com/watch?v=EAXJ_3dfeNI

我个人会在PLC上写下我的所有机器控制代码。然后,我将通过ModbusTCP与Pi共享变量的状态,以执行其他任何操作

答案 4 :(得分:0)

您可以使用以下命令在Python中试验PLC逻辑:

https://github.com/QQuick/SimPyLC

然后生成C ++并使用Arduino实时运行它。

但是仅将其用于非安全关键项目。 它不适合可能导致损坏或伤害的任何物品。 并且始终测试最终的真实PLC代码,而不要依赖Python工具来确保正确性。