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)
In TIA portal, check if "optimized block access" property is off for Data block that you want to read data from. Moreover, under CPU access protection; access level must be “full” and the “connection mechanism” must allow GET/PUT. See the following link for more detail:
http://snap7.sourceforge.net/snap7_client.html#1200_1500
Secondly, which data block that you want to access? You should specify that in your plc.read_area() method call. There should be a method argument that specifies "Data Block" number since you are using "0x84" data block area code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With