使用SIEMENS S7-1200 PLC在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",找不到任何处理程序 Trackback(最近的最新电话): 文件",第1行,在 文件"/usr/local/lib/python2.7/dist-packages/snap7/client.py",第242行,在read_area中 check_error(结果,上下文="客户端") 文件"/usr/local/lib/python2.7/dist-packages/snap7/common.py",第69行,在check_error中 提高SNAP7EXCEPTION(错误) snap7.snap7exceptions.snap7Exception:CLI:CPU拒绝的功能(未知错误)
在TIA Portal中,检查您要从中读取数据的数据块是否关闭了"优化块访问"属性。此外,在CPU访问保护下;访问级别必须"完整","连接机制"必须允许/放置。有关更多详细信息,请参见以下链接:
http://snap7.sourceforge.net/snap7_client.html#1200_1500
其次,您要访问哪个数据块?您应该在plc.read_area()方法调用中指定。由于您使用的是" 0x84"数据块区域代码,因此应该有一个指定"数据块"号码的方法参数。
首先检查您拥有的哪种类型/模型,并检查您选择的固件版本(第一个修订版或更新?)。如果有较早的固件版本,请使用Siemens或Tia Portal软件在网站上检查网站。
尝试将PLC重置为较早的固件版本,然后重新运行脚本,看看错误消息是否消失了!
S7-1212C示例:固件版本4.1给出上述错误。如果加载了固件4.0版,则错误会消失,并且您可以访问PCL。
享受圣诞节第二!