Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

S7-300 - "The statements are not being processed"

PLC, прочие контроллеры, промышленные компьютеры, операторские панели
Аватара пользователя

Автор темы
MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

S7-300 - "The statements are not being processed"

Сообщение MuadDib » 24 авг 2012, 07:32

На обслуживаемом нами оборудовании один из узлов стал работать только в ручном режиме, в "автомате" ничего не движется. Машина управляется S7-300 (6ES7315-2EH14-0AB0)/ Пытаясь найти источник проблемы, мы подключились к контроллеру и обнаружили странную вещь. Часть функций, отвечающих за управление данным узлом не вызывается ( "The statements are not being processed" в строке состояния Step7 при включении online-режима среды разработки). При этом блок вызывается безусловно. Выглядит это следующим образом. FB216 содержит часть функционала по автоматическому управлению данным узлом (отладка внутри данного блока показывает, что он не вызывается). Вызов этого блока осуществляется из FC215, выглядит это так:

Код: Выделить всё

Network 26:

|-----||--------------(SE)-|

Network 27:
UC FB216

Network 28:
....



При отладке FC215 видно, что NW26 выполняется, но если щёлкнуть на NW27, опять видим, что "The statements are not being processed". Безусловный вызов блока, до него тупо вызывается обычный таймер... Но получается, что управление к NW27 вообще не переходит. Как такое может быть?

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1247
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 12 раз
Поблагодарили: 37 раз
Контактная информация:

Re: S7-300 - "The statements are not being processed"

Сообщение CHANt » 24 авг 2012, 11:30

Безусловный вызов UC подразумевает что определены все параметра блока ранее. Проверьте, что экземплярный блок данных FB216 открывается до безусловного вызова, должно быть типа OPN DB216. Иначе блок не должен работать.
--------------------------------------------------------------------------------------------
"Почти все начальники - дилетанты." © цитата из поста hell_boy )))

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 504
Зарегистрирован: 05 окт 2009, 10:51
Ф.И.О.: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 15 раз
Поблагодарили: 18 раз
Контактная информация:

Re: S7-300 - "The statements are not being processed"

Сообщение Marrenoloth » 28 авг 2012, 13:25

Только не OPN BD###, а OPN DI### - надо как инстанс блок открывать, а не как шаред DB.

Аватара пользователя

Автор темы
MuadDib
не первый раз у нас
не первый раз у нас
Сообщения: 359
Зарегистрирован: 31 июл 2010, 08:12
Ф.И.О.: Журавлев Павел Евгеньевич
Поблагодарили: 1 раз

Re: S7-300 - "The statements are not being processed"

Сообщение MuadDib » 03 сен 2012, 11:44

Спасибо всем откликнувшимся!

Я поизучал программу и не нашёл ничего определённого :( Действительно, вызов FB осуществляется без указания экземплярного DB, и вышестоящего OPN DI### я в программе не нашёл. Но:

1. Описание интерфейса FB216 пустое - нет ни входных, ни выходных, ни статических, ни временных переменных. Соответственно, экземплярный блок вроде как и не нужен.
2. Собственно программа FB216 обращается только к глобальным данным (I, Q, M, Т), а также к открытому ранее шаред DB. Выглядит это в программе примерно так:

Код: Выделить всё

//FC0

Network 3:
OPN "xyz"                                    DB223
UC   "aaa"                                    FC201
UC   "bbb"                                    FC202
....
UC  "qqq"                                     FC215   <-- здесь, помимо прочих FB, вызывается FB216
....


Соответственно, программы данной подсистемы обращаются к данным шаред ДБ так:

Код: Выделить всё

L          DBW 276


Вроде все законно, хоть и отличается от рекомендованного стиля (программа в стиле Step5, что-ли?): открывается шаред DB223 с общими для группы программ данными, и все программы к нему обращаются по мере необходимости посредством "обычного доступа".

3. Единственная странность - в некоторых местах FB216 обращается к области L, при том что никаких переменных в интерфейсе FB нет вообще. Причем, обращение идёт и на чтение, и на запись. Не знаю, насколько это допустимо, но подобные финты ушами я замечал по всей данной программе, а таких странностей с "невызываемой" программой в других местах не было.

Короче, в программе всё мутно, символы на итальянском, а все спецы фирмы-производителя оборудования в полном составе свалили в отпуск... Что ещё нужно для счастья? :Р

Буду признателен за любые рекомендации по поиску "порывшейся собаки".

Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 504
Зарегистрирован: 05 окт 2009, 10:51
Ф.И.О.: Тихомиров Дмитрий Викторович
Откуда: Москва
Благодарил (а): 15 раз
Поблагодарили: 18 раз
Контактная информация:

Re: S7-300 - "The statements are not being processed"

Сообщение Marrenoloth » 03 сен 2012, 12:05

Ну, не красиво, несколько нагружает контроллер, но, действительно, все законно. Про L память - это TEMP переменные. И, на самом деле, не важно сколько из них будут вбиты в декларацию FB или FC - она всегда выделяется по-максимуму при каждом новом вызове блока, а размер зависит от конкретной модели контроллера.
Так что тут только курить программу. Итальянцы, сколько с ними сталкивался, всегда такие жопы делают. Или еще похуже! Типа защищают свои секреты. :(


Вернуться в «Средний уровень автоматизации»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей