用PC直接读、写西门子PLC的输出端

来源:百度知道 编辑:UC知道 时间:2024/05/25 06:29:05
希望做一个与PLC端程序无关的上位机程序,使用串口和PLC连接。

实现的功能其实和PLC程序调试过程中的“强制”是一样的,单独对输出的某个位进行置0或置1。理论上讲,既然调试程序可以做到,普通用户也可以,只不过不知道这个协议是否公开。

以上的功能通过自由口通信也可以完成,但是由于产品已经发货,不希望改变PLC的程序。
3楼说“如果有了PLC程序,基本上直接强制输出是不可能的。”如果没有PLC程序呢?因为对方仅仅想自由控制各泵阀,并不一定要按照特定流程操作。

用组态软件做人机界面。WinCC,组态王等。
如果有了PLC程序,基本上直接强制输出是不可能的。因为程序在执行,一个循环刷新一次,输出最后定位到程序运行结果。也就是说,还是PLC程序在决定输出的状态。
但是可以在画面上通过改变输入来改变输出,如果有各种传感器、开关会很麻烦的。
还有一种办法,做个标志位,在画面上置复位,置位后跳转所有PLC程序,这样就可以在画面上强制输出了。

如果想自己用VC、VB、Delphi自己编写控制PLC的程序就要找专门的书籍了,有一点,这种书籍是存在的。我简单的看过,但没有研究过。

没有办法的,除非你能破解西门子的通讯协议。

另外如果你的plc程序里有这个功能也行,因为你可以知道怎么通过输入控制输出啊。比如你的程序里,当i0.0=1 则q0.0=1,那么你可以通过自由口通信给i0.0置1,来控制q0.0=1。

除了这2种以外,应该没有其他办法的。

在step-7程序中用通信选项直接设置要改变参数的地址内容即可!比如VB1000控制电机起停,用通信方法改变它即可!!