Нет ошибки. При симуляции считает правильно. 2.4.334.0
Возможно в составе чего-то большего не так симулятор считает, но один блок на холсте без ошибок.
if reset OR first_run then - так короче, переменные и так булевы.
Нет ошибки. При симуляции считает правильно. 2.4.334.0
Возможно в составе чего-то большего не так симулятор считает, но один блок на холсте без ошибок.
if reset OR first_run then - так короче, переменные и так булевы.
Последний раз редактировалось Leon7; 20.08.2023 в 10:03.
Зачем так категорично ? https://ru.wikipedia.org/wiki/%D0%A4...B0%D0%BB%D0%B0
электронщик до мозга костей и не только
Слова могут иметь несколько значений, в зависимости от контекста! Например: во время ВОВ был Волховский фронт, явно, фронт здесь в другом значении!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Речь была о фронтах эл. сигнала (импульса), а ссылка была на военные действия. При этом есть конкретное понятие (ссылку дал) , да и учили нас давно так.
электронщик до мозга костей и не только
ФБ для конвертации BCD формата панелей, HEX в DEC и обратно DEC в HEX, пришлось переделать из функций, для приёма времени из панели ИП320.
Время там в шестнадцатиричной системе, да ещё и совмещено год с месяцем, день с часами, минуты с секундами.
В панелях СП307, СП310 время тоже передаётся в BCD формате, только отдельными регистрами.
Чтобы их разделить функции не достаточно. На скрине 2308 (год 23, месяц 08) принимается как 8968 1 Конвертация HEX_DEC.jpg
Код:function_block HEX_DEC // Конвертация из Шестнадцатиричной в Десятичную var_input x: udint; end_var var_output //объявление выходных переменных Q,Q1,Q2 : udint; end_var Q := x/4096 MOD 16*1000+x/256 MOD 16*100+x/16 MOD 16*10+x MOD 16; Q1:=Q/100; Q2:=Q-Q1*100; end_function_blockКод:function_block DEC_HEX // Конвертация из Десятичной в Шестнадцатиричную var_input x: udint; end_va var_output //объявление выходных переменных Q,Q1,Q2 : udint; end_var var a,b,c,d: udint; end_var a:=x/1000; b:=(x-a*1000)/100; c:=(x-a*1000-b*100)/10; d:=x-a*1000-b*100-c*10; Q := a*4096 + b*256+c*16+d; Q1:=Q/100; Q2:=Q-Q1*100; end_function_block
Последний раз редактировалось kondor3000; 10.02.2025 в 07:49.