Функции в GX Developer, непонятно, как они работают |
Здравствуйте, гость ( Вход | Регистрация )
Функции в GX Developer, непонятно, как они работают |
23.05.2005 - 19:55
Сообщение
#1
|
|
Читатель Группа: Пользователи Сообщений: 5 Регистрация: 25.11.2004 Пользователь №: 97 |
Использую для програмирования FX1N GX IEC Developer 6.01
Очень необходимо иметь чвозможность программировать функции, максимально приближенные к функциям языков высокого уровня (C, Pascal). Я обычно использовал Function block с включёнными опциями: Macrocode, MC/MCR, EN/ENO. Но неожиданно я столкнулся с проблемой, что когда программу записываешь в контроллер, он сразу выдаёт ошибку 6608 ( недопустимые MC/MCR инструкции; отсутствует MCR NO; IRET/SRET или прерывание инструкции были запрограммированы между MC и MCR блоками). Выяснилось, что эта ошибка пропадает, если убрать часть вызовов функций в программе или снять у FB опцию Macrocode. Но без неё программа выполняется как-то не так. Пожалуйста, объясните мне как выполняются функции с разными настройками и какой тип функций оптимальнее всего использовать. |
|
|
26.05.2006 - 10:15
Сообщение
#2
|
|
Читатель Группа: Пользователи Сообщений: 4 Регистрация: 22.10.2005 Пользователь №: 202 |
Если Macrocode не установлена, то FB реализуется в соответсвии со стандартом IEC 61131-3 и использует системные метки ПЛК в FX их 128. Помимо ваших FB эти метки используют и внутренние процессы ПЛК. Т.е. каждый вызов вашего FB хавает одну эту метку. Если вы вызываете достаточно много этих FB, то меток может просто не хватить.
Если Macrocode установлена системные метки не хаваются, кроме того пропадают ограничения на использование в FB таймеров, счётчиков и т.д. EN/ENO думаю понятно MC/MCR влияет на поведение таймеров, счётчиков и выходов после сброса. Более подробно можно почитать здесь |
|
|
Текстовая версия | Сейчас: 23.09.2024 - 03:53 |