Диагностика связи с контроллером SiemensPLC

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево системы > Получение и отправка данных > Дополнительные протоколы > SiemensPLC > Рекомендации по настройке протокола SiemensPLC >

Диагностика связи с контроллером SiemensPLC

Если при опросе одного параметра (времени) или всех параметров прибора возникают проблемы, то можно получить лог-файл и проанализировать обмен с устройством.

Важно! Получать лог-файлы обмена с устройством следует всегда на отдельном проекте, с одним устройством и минимумом переменных.

Чтобы в лог-файлы записывались запросы от устройств, необходимо активировать расширенный режим записи логов. Для этого, в панели свойств узла, для настройки Параметры запуска RT нужно установить значение /t :

diagnostika_svyazi_s_kontrollerom_SiemensPLC

После этого, запустите проект в режим исполнения, дождитесь возникновения проблемы, затем перейдите на главном меню во вкладку Сервис и выберите Отчет об ошибках. Создайте отчет об ошибке и откройте папку, содержащую отчет.

В случае если используется исполнительная система, входящая в состав среды разработки, файлы, по умолчанию, хранятся в папке: С:\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 запросов, а также попробуйте перекомпилировать и залить проект в контроллер снова.

Возможно появление и других ошибок - в этом случае необходимо сформировать отчет об ошибках и направить его в техническую поддержку.

Смотрите также: