S7-1200, Snap7: Исключение: CLI: функция отклонена ЦП (Неизвестная ошибка)

Выполнение нижеприведенного клиентского скрипта snap7 для python с использованием ПЛК Siemens S7-1200 показывает приведенную ниже общую ошибку отказа 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_area check_error (result, context =" client ") Файл" /usr/local/lib/python2.7/dist-packages/snap7/common.py ", строка 69, в check_error вызывает Snap7Exception (ошибка ) snap7.snap7exceptions.Snap7Exception: CLI: функция отклонена ЦП (неизвестная ошибка)


person ZF007    schedule 26.12.2017    source источник


Ответы (2)


На портале TIA проверьте, не отключено ли свойство «оптимизированный доступ к блокам» для блока данных, из которого вы хотите читать данные. Причем под защитой доступа к ЦП; уровень доступа должен быть «полным», а «механизм подключения» должен разрешать GET / PUT. См. Следующую ссылку для получения более подробной информации:

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

Во-вторых, к какому блоку данных вы хотите получить доступ? Вы должны указать это в вызове метода plc.read_area (). Должен быть аргумент метода, указывающий номер «блока данных», поскольку вы используете код области блока данных «0x84».

person Freeman    schedule 22.01.2018
comment
Следовательно, происходило гораздо больше, чем то, что я написал в своем ответе, но я понял это несколько дней спустя. Я должен обновить свой ответ по поводу вики-учебника ... но коммерческий крайний срок запрещает это делать прямо сейчас :-( Но да, вы указываете правильное направление для доступа к базе данных для чтения / записи. Мне даже удалось изменить информационную метку переменной внутри базы данных, чтобы соответствовать длине более длинной переменной; в противном случае эта метка была бы обрезана при заданной длине отображения. - person ZF007; 22.01.2018
comment
Я отредактировал свой ответ, возможно, вы тоже захотите проверить права доступа. - person Freeman; 25.01.2018

Прежде всего, проверьте, какой у вас тип / модель ПЛК, и проверьте, какую версию прошивки вы выбрали (первая или более новая?). Проверьте на веб-сайте программное обеспечение Siemens или портала TIA, доступны ли более ранние версии прошивки.

Попробуйте сбросить ваш ПЛК до более ранней версии прошивки, перезапустите скрипт и посмотрите, исчезло ли сообщение об ошибке!

S7-1212C Пример: версия прошивки 4.1 выдает описанную выше ошибку. Если загружена прошивка версии 4.0, ошибка пропадает и вы получаете доступ к ПК.

Наслаждайтесь вторым Рождеством!

person ZF007    schedule 26.12.2017
comment
Этот ответ привел нас к мысли, что существует проблема совместимости, но после того, как я столкнулся с аналогичной ошибкой и проблемой и теперь решил их, я могу заявить, что snap7 работает с прошивкой S7-1200 до версии 4.4. - person Craig; 18.01.2021
comment
Приятно знать, что этот конкретный тип ошибки был исправлен. Спасибо. - person ZF007; 19.01.2021