2

Running below snap7 client script for python using Siemens S7-1200 PLC shows the below common CLI refusal error. What is here the common problem and how to solve it?

Script:

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)

Traceback error:

No handlers could be found for logger "snap7.common" Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/dist-packages/snap7/client.py", line 242, in read_area check_error(result, context="client") File "/usr/local/lib/python2.7/dist-packages/snap7/common.py", line 69, in check_error raise Snap7Exception(error) snap7.snap7exceptions.Snap7Exception: CLI : function refused by CPU (Unknown error)

4

2 回答 2

5

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

http://snap7.sourceforge.net/snap7_client.html#1200_1500

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

于 2018-01-22T13:43:41.153 回答
0

首先检查您拥有哪种类型/型号的 PLC,并检查您选择的固件版本(第一版还是更新版?)。如果有较早的固件版本可用,请使用 Siemens 或 TIA Portal 软件查看网站。

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

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

第二次享受圣诞节!

于 2017-12-26T13:46:29.370 回答