<< Click to Display Table of Contents >> Navigation: Проект в MasterSCADA 4D > Дерево системы > Получение и отправка данных > Дополнительные протоколы > SiemensPLC > Рекомендации по настройке протокола SiemensPLC > Диагностика связи с контроллером SiemensPLC |
Если при опросе одного параметра (времени) или всех параметров прибора возникают проблемы, то можно получить лог-файл и проанализировать обмен с устройством.
Важно! Получать лог-файлы обмена с устройством следует всегда на отдельном проекте, с одним устройством и минимумом переменных.
Чтобы в лог-файлы записывались запросы от устройств, необходимо активировать расширенный режим записи логов. Для этого, в панели свойств узла, для настройки Параметры запуска RT нужно установить значение /t :
После этого, запустите проект в режим исполнения, дождитесь возникновения проблемы, затем перейдите на главном меню во вкладку Сервис и выберите Отчет об ошибках. Создайте отчет об ошибке и откройте папку, содержащую отчет.
В случае если используется исполнительная система, входящая в состав среды разработки, файлы, по умолчанию, хранятся в папке: С:\Users\[имя пользователя]\AppData\Roaming\MPSSoft\MasterSCADA4D[номер версии]\ProjectsServiceData\[имя проекта]\Debug\[имя узла]\PLC\logs\log_[дата формирования файла].txt
В случае если используется исполнительная система, установленная как независимое приложение, то информацию о получении лог-файлов смотрите в соответствующем разделе.
Откройте лог-файл при помощи Блокнота или специальным ПО для просмотра логов (например LogViewer).
Так как в лог-файлах фиксируется полная информация от системы, то необходимо выделить сообщения, связанные непосредственно с протоколом. Диагностические сообщения от протокола можно определить по начальному тексту Siemens driver.
Ниже приведен пример корректного лога:
Siemens driver. Connection attempt 192.168.100.98:102
Siemens driver. Successful connection 192.168.100.98:102
Siemens driver. Connection attempt Rack 0 Slot 1
send 22
recv 4
recv 18
send 25
recv 4
recv 23
Siemens driver. Successful connection Rack 0 Slot 1 Buffer
Siemens driver. Read start
Siemens driver. ReadManyBytes Region = 131 DBNumber = 0 Start = 0 Count = 2
send 31
recv 4
recv 23
Siemens driver. Read done
В данном логе происходит установления соединения с контроллером по IP адресу 192.168.100.98 порт 102, стойка - 0, слот - 1. После Read start начинается опрос переменных. В данном случае читается регион 131 (это регион M), с нулевого байта, считывается 2 байта (т.е. читается переменная типа WORD в нулевом адресе региона M).
В таблице ниже приведены числовые идентификаторы регионов:
Регион |
Числовой идентификатор |
Input |
129 |
Output |
130 |
M |
131 |
DB |
132 |
T |
41 |
C |
40 |
В случае некорректных настроек в лог будет выводится текст ошибки. Например:
Siemens driver. Connection attempt 192.168.100.98:102
Siemens driver. Successful connection 192.168.100.98:102
Siemens driver. Connection attempt Rack 0 Slot 1
send 22
recv 4
recv 18
send 25
recv 4
recv 23
Siemens driver. Successful connection Rack 0 Slot 1 Buffer
Siemens driver. Read start
Siemens driver. ReadManyBytes Region = 131 DBNumber = 0 Start = 5000 Count = 2
send 31
recv 4
recv 21
ReadBytes error 5
Siemens driver. ReadManyBytes error = 5 AddressOutOfRange
Siemens driver. Start closing socket
Siemens driver. Socket is close
Siemens driver. No connection. Set BAD to all tags
В данном случае соединение успешно устанавливается, но регион 131 (M) с адреса 5000, 2 байта, формируется ошибка AddressOutOfRange - эта ошибка означает, что данный адрес находится за пределом диапазона.
В таблице ниже приведен список наиболее распространенных ошибок:
Текст ошибки |
Описание |
ResNoPeripheralAtAddress |
Процессор сообщает, что по адресу нет периферийного устройства. |
ResItemNotAvailable200 |
Означает, что часть данных недоступна в процессоре, например при попытке чтения несуществующей БД или битового блока длиной<>1. Этот код, характерен для семейства S7-200. |
ResItemNotAvailable |
Означает, что часть данных недоступна в процессоре, например при попытке чтения несуществующей DB. |
AddressOutOfRange |
Означает, что адрес данных находится за пределами диапазона адресов процессора. |
WriteDataSizeMismatch |
Означает, что размер записываемых данных не соответствует размеру элемента. |
ResCannotEvaluatePDU |
Неизвестный PDU. |
ResTimeOut |
Не поступил ответ от контроллера. |
ResRecvError |
Ошибка приема ответа. Такая ошибка может возникать если указан неверный слот процессора. |
UndefinedError |
Не известная ошибка. После сообщения следует номер ошибки. Если выдается код 33028 – убедитесь, что разрешено выполнение PUT/GET запросов, а также попробуйте перекомпилировать и залить проект в контроллер снова. |
Возможно появление и других ошибок - в этом случае необходимо сформировать отчет об ошибках и направить его в техническую поддержку.
Смотрите также:
Проверка связи с устройством SiemensPLC