Python S7-1200,Snap7:异常:CLI:CPU拒绝功能(未知错误)

Python S7-1200,Snap7:异常:CLI:CPU拒绝功能(未知错误),python,plc,s7-1200,siemens,tia-portal,Python,Plc,S7 1200,Siemens,Tia Portal,使用西门子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 =

使用西门子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)
回溯错误:

找不到记录器“snap7.common”的处理程序 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/usr/local/lib/python2.7/dist packages/snap7/client.py”,第242行,在read_区域 检查错误(结果,context=“client”) 文件“/usr/local/lib/python2.7/dist packages/snap7/common.py”,第69行,检查错误 引发Snap7异常(错误) snap7.snap7exceptions.Snap7Exception:CLI:函数被CPU拒绝(未知错误)


首先,检查您拥有的PLC的类型/型号,并检查您选择的固件版本(第一版本或更新版本?)。如果有早期固件版本可用,请使用西门子或TIA门户软件在网站上查看

尝试将plc重置为较早的固件版本,然后重新运行脚本,查看错误消息是否消失

S7-1212C示例:固件版本4.1给出了上述错误。如果加载了固件版本4.0,则错误消失,您可以访问pcl

祝你圣诞快乐

在TIA门户中,检查要从中读取数据的数据块的“优化块访问”属性是否已关闭。此外,在CPU访问保护下;访问级别必须为“完全”,并且“连接机制”必须允许GET/PUT。有关详细信息,请参见以下链接:


其次,您要访问哪个数据块?您应该在plc.read_area()方法调用中指定。应该有一个指定“数据块”编号的方法参数,因为您使用的是“0x84”数据块区号

因此,除了我在回答中发布的内容之外,还有很多事情要做,但几天后我发现了这一点。我应该更新我对维基教程的回答。但商业截止日期禁止现在这样做:-(但是,是的,您指向了正确的数据库访问读/写方向。我甚至设法修改了数据库中变量的信息标签,以适应较长变量的长度;否则,该标签将在预设的显示长度下被切断。我编辑了我的答案,您可能也希望检查访问权限。这个答案让我们相信ve有一个兼容性问题,但在遇到类似的错误和问题后,现在解决了这些问题,我可以说snap7适用于S7-1200固件,最高版本为4.4。很高兴知道此特定类型的错误已修复。谢谢。