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

问题描述 投票:2回答:5

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

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

或者仍然需要编写梯形图逻辑/本机PLC代码?

python linux raspberry-pi modbus plc
5个回答
6
投票

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

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

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


1
投票

我不知道你是否可以在你正在讨论的具体配置中做到这一点;事实上,你没有说你正在使用哪种PLC,所以我怀疑任何回复者都可以告诉你。

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

通常,PLC每秒运行数百次,每次采样输入和计算新输出。这足够快,因此力学有效地看到“平稳”控制。 (5 Hz可能会引起硬件的机械抖动和抖动)。

如果您“参与”Python来计算,那么您可以通过某种方式向PLC支付总线通信时间到Python,Python唤醒时间,Python执行时间以及Python消息打包/解包时间。我怀疑你能否以每秒几百次的速度可靠地实现所有这一切(当操作系统中断Python将10M数据写入磁盘以进行其他后台处理时会发生什么?)

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


1
投票

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

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

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

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

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

希望有所帮助。


0
投票

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

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

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


0
投票

您可以使用以下方法在Python中试验PLC逻辑:

https://github.com/QQuick/SimPyLC

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

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

© www.soinside.com 2019 - 2024. All rights reserved.