ZF0*_*007 2 python plc tia-portal s7-1200 siemens
使用西门子 S7-1200 PLC 在 python 的 snap7 客户端脚本下运行显示以下常见的 CLI 拒绝错误。这里的常见问题是什么以及如何解决?
脚本:
import snap7
from snap7.util import *
import struct
import snap7.client
from snap7.snap7types import S7AreaDB
plc=snap7.client.Client()
plc.connect('192.168.0.69',0,1)
area = 0x84
start = 0
length = 1
bit = 0
byte= plc.read_area(area,0,start,length)
Run Code Online (Sandbox Code Playgroud)
追溯错误:
找不到记录器“snap7.common”回溯(最近一次调用最后一次)的处理程序:文件“”,第 1 行,文件“/usr/local/lib/python2.7/dist-packages/snap7/client.py ",第 242 行,在 read_area check_error(result, context="client") 文件“/usr/local/lib/python2.7/dist-packages/snap7/common.py”,第 69 行,在 check_error 中引发 Snap7Exception(错误) snap7.snap7exceptions.Snap7Exception: CLI : 函数被 CPU 拒绝(未知错误)
在 TIA 门户中,检查要从中读取数据的数据块的“优化块访问”属性是否关闭。此外,在CPU访问保护下;访问级别必须是“完整的”并且“连接机制”必须允许 GET/PUT。有关更多详细信息,请参阅以下链接:
http://snap7.sourceforge.net/snap7_client.html#1200_1500
其次,您要访问哪个数据块?您应该在 plc.read_area() 方法调用中指定。由于您使用的是“0x84”数据块区域代码,因此应该有一个方法参数指定“数据块”编号。