Добрый день, подскажите пожалуйста почему codesys 2.3 не распознает тип CTUD_UDINT, в тоже время CTUD работает.
Вид для печати
Добрый день, подскажите пожалуйста почему codesys 2.3 не распознает тип CTUD_UDINT, в тоже время CTUD работает.
CTUD это возможно счетчик, но ни как не тип данных. Все что поддерживается из типов данных можно посмотреть здесь
а никто и не говорил про тип данных. ФБ CTUD это счетчик с накопительной переменной с типом int, а CTUD_UDINT соответственно с другим.
Счетчик CTUD входит в библиотеку Standard.LIB, только тип переменной для счета совсем не int, а WORD
Вложение 40762
Никакого счетчика "CTUD_UDINT" в этой библиотеке нет, а чего нет, того и распознать нельзя.
просто в стандарте IEC 61131-3 описан как раз счетчик с CTUD_UDINT, а простой CTUD досчитает до 32767 и надо будет творить обнуление с сохранением предыдущего значения. что при CTUD_UDINT не надо бы было. Вот и хотел узнать, похоже не поддерживает.
Счетчик CTUD из библиотеки Standard.LIB досчитает не до 32767, а до 65535 и обнулится сам.
При этом Ваш мифический CTUD_UDINT тоже имеет предел счета 4294967295, т.е. не бесконечность и рано или поздно тоже "надо будет творить обнуление с сохранением предыдущего значения"
Вы сами то сначала проверьте обнулит ли он сам, и до скольки он досчитывает прежде чем говорить
А в чем сомнения Ваши?
Вложение 40765
Проверяйте!
ЗЫ
Выход счетчика CV имеет тип WORD по этому считает счетчик от 0 до 65535
Вложение 40767
ЗЫ
Смотрим
Вложение 40768
нажми на картинку!
CTUD + CTUD = CTUD_UDINT
Вложение 40769
Добрый день!
petera, судя по выложенному Вами проекту, Вы запускали свой проект в режиме эмуляции. В эмуляции счетчики считают до 65535. Но при работе проекта в ПЛК счетчики работают не так, как в эмуляции - считают до 37767.
Попробуйте запустить проект на ПЛК и слова ТС подтвердятся.