Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

S7-1200, Snap7: Exception: CLI : function refused by CPU (Unknown error)

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)

like image 975
ZF007 Avatar asked Sep 22 '26 11:09

ZF007


1 Answers

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.

like image 187
Freeman Avatar answered Sep 24 '26 23:09

Freeman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!