На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Дублирование сообщений приравнивается к спаму. Рекламу мы не размещаем ни на каких условиях.

Обработка массива с переменными границами

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить
Аватара пользователя

Автор темы
petr2off
частый гость
частый гость
Сообщения: 425
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Благодарил (а): 6 раз
Поблагодарили: 15 раз

Обработка массива с переменными границами

Сообщение petr2off » 02 окт 2018, 10:33

Разбираюсь сейчас с возможностями S7-1200. Увидел там хитрое такое обозначение ARRAY[*] OF REAL. Для работы с массивами с переменной размерностью. Там еще парочка функций есть, для определения верхней и нижней границы диапазона UPPER_BOUND и LOWER_BOUND. И тут же грабельки полетели, со всех сторон.
1) В параметрах INPUT и OUTPUT такую нотацию не воспринимает, только в InOut.
2) При попытке загрузить такую программулину в симулятор - он через пару секунд вылетает.

Т.е. или пользоваться этим нельзя на S7-1200, или прошивка староватая, или я что то опять проглядел ?

Отправлено спустя 1 час 30 минут 47 секунд:
Появился луч света в темном царстве, в FC блоках можно использовать массивы без указания границ в INPUT и OUTPUT


UNTK_RAA
здесь недавно
здесь недавно
Сообщения: 49
Зарегистрирован: 01 мар 2010, 17:37
Имя: Алексей Алексеевич
Поблагодарили: 1 раз

Обработка массива с переменными границами

Сообщение UNTK_RAA » 02 окт 2018, 12:49

Какая версия Step7? v15 ?

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

Автор темы
petr2off
частый гость
частый гость
Сообщения: 425
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Благодарил (а): 6 раз
Поблагодарили: 15 раз

Обработка массива с переменными границами

Сообщение petr2off » 02 окт 2018, 13:09

Нет V14, SP1

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

Автор темы
petr2off
частый гость
частый гость
Сообщения: 425
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Благодарил (а): 6 раз
Поблагодарили: 15 раз

Обработка массива с переменными границами

Сообщение petr2off » 02 окт 2018, 18:39

Рано радовался. Все компилится, загружается. Но проработав пару секунд, выходит на ошибку. Диагностика - выход за границы памяти...

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

Автор темы
petr2off
частый гость
частый гость
Сообщения: 425
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Благодарил (а): 6 раз
Поблагодарили: 15 раз

Обработка массива с переменными границами

Сообщение petr2off » 03 окт 2018, 06:17

Подвожу итоги. Опустился конечно я до крайностей, скачал мануал. Резюме - делал все правильно, просто это не работает в S7-1200, а вот в S7-1500 работает. Пикантность ситуации в том, что S7-1200 не имеет в своем арсенале STL, и как следствие - невозможность использования косвенной адресации. По этому, в качестве одной из альтернатив предлагается использование массивов. Ну и тут же эта возможность обрезается, хотя то, что это нельзя использовать для S7-1200 я не увидел в мануале, возможно не нашел. Там более 1000 страниц.

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

Автор темы
petr2off
частый гость
частый гость
Сообщения: 425
Зарегистрирован: 06 янв 2016, 19:45
Имя: Петров В.Л.
Благодарил (а): 6 раз
Поблагодарили: 15 раз

Обработка массива с переменными границами

Сообщение petr2off » 09 окт 2018, 10:05

Небольшое уточнение, оказывается в симуляторе это все работает, STEP 7 съезжает, когда к симулятору подключаешься. Причем бред какой то показывает. Типа горит светодиод ERROR, хотя симуляторе такого нет.
А вот HMI эмулятор - тот молотком - все продолжает показывать. Надеюсь, когда железо подойдет, все будет более адекватно.

Ответить

Вернуться в «Simatic TIA Portal»