Да, можно. Никогда проблем не возникало. Если программируете в CoDeSys 2.3, то синтаксис без скобок QWE;
Вид для печати
Попробовал без скобок. Результат такой же. Напишу простенький тест сейчас..
VaBo
По поводу синтаксиса. В окне программы, в которую надо положить вашу POU, устанавливаете курсор на нужное место, нажимаете F2, выбираете Пользовательские программы>Ваша POU>Ok. Все вставится как надо.
Можно. Только следует учесть, что вызываемая программа работает с локальными переменными в приоритете. Т. е. если в проекте есть глобальная переменная и локальная в вызываемой POU с одинаковыми именами, то будет обрабатываться локальная.Цитата:
А можно ли из одной программы вызывать другую?
Это все понятно, непонятно было, как пошагово отлаживать. Как выяснилось после тестового проектика, если в вызываемой программе не поставить точку останова, то вызывающая программа при проходе "по шагам" визуально не заходит в вызываемую (по факту - да). Блин, только сейчас увидел, что есть F8 - "шаг детальный", который все делает, как нужно. А до этого экранную кнопку тыкал, а на экране только "шаг поверху"...
Наверняка эта тема много раз обсуждалась, но прошу ткнуть ) Как в Codesys v2 лучше реализовать распаковку регистра в 16 bool, и назад? Так же, как в ОвенЛожик, с помощью PUTBIT и EXTRACT или есть другой вариант? Чтобы связать ПЛК и ПР200.
В кодесис есть адресация к битам через точку
Упаковать биты в регистр можно такой функцией
В обратную сторону аналогично, используем Bxx:=W.xx, где хх=0,1,2,...15Код:FUNCTION PACK_W : WORD
VAR_INPUT
B0: BOOL;
B1: BOOL;
B2: BOOL;
B3: BOOL;
B4: BOOL;
B5: BOOL;
B6: BOOL;
B7: BOOL;
B8: BOOL;
B9: BOOL;
B10: BOOL;
B11: BOOL;
B12: BOOL;
B13: BOOL;
B14: BOOL;
B15: BOOL;
END_VAR
VAR
END_VAR
(*Тело функции*)
PACK_W.0:=B0;
PACK_W.1:=B1;
PACK_W.2:=B2;
PACK_W.3:=B3;
PACK_W.4:=B4;
PACK_W.5:=B5;
PACK_W.6:=B6;
PACK_W.7:=B7;
PACK_W.8:=B8;
PACK_W.9:=B9;
PACK_W.10:=B10;
PACK_W.11:=B11;
PACK_W.12:=B12;
PACK_W.13:=B13;
PACK_W.14:=B14;
PACK_W.15:=B15;
А для случая "Чтобы связать ПЛК и ПР200" можно и без всяких "паков"
https://owen.ru/forum/showthread.php...l=1#post216361
https://owen.ru/forum/showthread.php...l=1#post187668
Скрытый текст:
Т.е. подправить файл hardware.cfg для таргета и получить в конфигурации "развернутые" 2byte или даже 4byte,
т.е. с возможностью доступа к любому биту как в модуле 8bits
Вячеслав@
Я создавал свой ФБ.
Допустим это будет аналог PUTBIT:
------Код:Входные_переменные
Ин1:bool
..
Ин16 :bool
--
ВЫходные_переменные
Out:WORD;
--
Тело
Out.0:=Ин1;
..
Out.15:=Ин16;
EXTRACT делается также, только наоборот.
Добрый день.
В SCDA через переменную типа int задается время в минутах.
В ПЛК на это время надо запустить таймер TON.
Подскажите, пожалуйста, как преобразовать int в переменную time для таймера?