python - 通过pycomm读取标签时超时

标签 python plc

我在使用 Pycomm 时遇到问题。 我有两个文件:

  1. 用于在 while 循环中读取标签
  2. 就是在标签中写入值

    • 读取标签时,它工作正常并在控制台打印值。
    • 当第一个文件在终端中运行时,当我尝试在标签中写入值时出现问题。 当我运行第二个文件写入值时,在第一个文件控制台中它开始打印:超时

这是第一个文件的代码

from pycomm.ab_comm.slc import Driver as SlcDriver

c = SlcDriver()
if c.open('192.168.46.124'):
        while (1 < 3):
            try:
                print c.read_tag('N7:0')
            except Exception as e:
                print e
                pass

和第二个文件的代码

from pycomm.ab_comm.slc import Driver as SlcDriver

c = SlcDriver()
if c.open('192.168.46.124'):
        c.write_tag('N7:1',1)

此图像显示第一个文件的输出: read_plc.py

当我从第二个文件写入标签时,会发生这种情况: first file console

只有在同时执行读取或写入操作时才会发生这种情况。

最佳答案

按照 SLC 驱动程序的编写方式,一次只能有一个连接与 PLC 通信。它会拦截来自设备的所有通信,因此当您启动第二个文件并启动第二个连接时,第一个连接会拦截所有数据,而第二个则什么也得不到。

关于python - 通过pycomm读取标签时超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51779836/

相关文章:

python - Django 将静态值注释到查询集

Python modbus 通信使用 ModbusTcpClient 库在三菱 PLC 上读取单词

c# - 使用 S7netplus 在 C# 中读取西门子 PLC s7 字符串

sqlite - 无需 C(或任何其他主流语言)实现 SQLite

C 设置位(位操作)

python - Pygame Vector2.as_polar() 和 Vector2.from_polar() 方法

python - 如何实现python aiogram bot的自动重载?

python - Matplotlib 子图缺少网格

javascript - 在 python mechanize 中提交 javascript 请求

plc - 开始PLC编程