Можно
Вложение 64928Код:funR_trig := Clk and not M;
funF_trig := not Clk and M;
Но зачем, если в ST их не применить, а в FBD и так есть
А в счетчике не хватает сброса
Вид для печати
Можно
Вложение 64928Код:funR_trig := Clk and not M;
funF_trig := not Clk and M;
Но зачем, если в ST их не применить, а в FBD и так есть
А в счетчике не хватает сброса
День добрый!
Я спрашивал про присвоение значения переменной во почему -
function test: bool; //тестовый и тип данных выхода bool
var_input //объявление входных переменных
A : bool; //входная переменная с типом данных bool
B : bool; //входная переменная с типом данных bool
C : bool; //входная переменная с типом данных bool
end_var
if A = true then test := true; end_if
if B = true then test := true; end_if
if C = true then test := false; end_if
end_function
Как видно двоеточий нет и программа работает, а на двоеточие ругается
Спасибо,
Пока я рисовал, сообщения уже нет?
Вложение 64930
Может сам догадался?Код:function bm_WeekDay: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
Mon : bool; //входная переменная с типом данных bool
Tue: bool; //входная переменная с типом данных bool
Wed: bool; //входная переменная с типом данных bool
Thu: bool; //входная переменная с типом данных bool
Fri: bool; //входная переменная с типом данных bool
Sat: bool; //входная переменная с типом данных bool
San: bool; //входная переменная с типом данных bool
All: bool; //входная переменная с типом данных bool
end_var
If All Then bm_WeekDay:= 254;
else
bm_WeekDay.1:= Mon;
bm_WeekDay.2:= Tue;
bm_WeekDay.3:= Wed;
bm_WeekDay.4:= Thu;
bm_WeekDay.5:= Fri;
bm_WeekDay.6:= Sat;
bm_WeekDay.7:= San;
end_if;
end_function
После входных переменных if A := true
function test: bool; //тестовый и тип данных выхода bool
var_input //объявление входных переменных
A : bool; //входная переменная с типом данных bool
B : bool; //входная переменная с типом данных bool
C : bool; //входная переменная с типом данных bool
end_var
if A := true then test := true; end_if
if B := true then test := true; end_if
if C := true then test := false; end_if
end_function
Все правильно ругается!
Зачем оператор присваивания(:=) вместо проверки условия (=)
Нужно
if A = true then test := true; end_if
if B = true then test := true; end_if
if C = true then test := false; end_if
Но вообще это масло масляное, нужно быть проще
if A then test := true; end_if
if B then test := true; end_if
if C then test := false; end_if
Выкладываю новые функции на ST, версия OWEN Logic2.6.345
Sin_Cos_Tg_CTg_ArcSin_ArcCos_ArcTg (x)
Да, я понял
Когда Ладдер изучал, нашёл книжку от старинного контроллера Аллен Бредли 1982 года - хоть на английском, но лучше и доходчивей никто не писал - по моему мнению, конечно - у всех разное восприятие информации
Поэтому для ST от Овен мануал всё-таки нужен. Хороший, доходчивый, с разбором примеров.
Скачайте CODESYS версия 2.3.9.41 (Русифицированная версия), таргеты ПЛК и библиотеки с сайта, создайте новый проект, с любым таргетом например ПЛК100-М, основную программу PLC_PRG на ST и упражняйтесь,
по справке F1 там много информации по ST.
https://owen.ru/product/codesys_v2
Там же по ссылке обучающие видео, посмотрите хотя бы первые 10
Это да. Но мне нужно именно на ПР200.
F1 в редакторе функций:
Вложение 64941
Да. Пишет, как на картинке. Но результат умножения то целое по идее должно быть?Вложение 64957
А интересно, как это Вложение 64961 сочетается с этим Вложение 64962?
Раньше, вроде побитово логические операции выполнялись
Наверное, выходит, к целым нельзя пока применять побитовые операции
Когда нельзя, но очень хочется, то ... ;)
Вложение 64963
Вложение 64964
При этом если не ошибаюсь можно использовать просто AND без всякого ST
Матерюсь, при отсутствии прибора и выбора COM порт программа ТУПИТ безбожно, разработчики, почините что ли...
Можно вроде, версия 2.ххх
capzap речь о том, что почему-то на ST не реализован AND с целочисленными в виде простого & , хотя в FB он работает.
Филоненко Владислав С наступившим вас Новым(текущим) Годом :)
Как коня не назови, & или AND OR NOT, а ехать оно не хочет, судя по предыдущей странице.... при этом поставив кубик AND все работает как и задумано
Включение и выключение насосов. Возможность вывода в ремонт. Общее число насосов можно задать вверху холста. В общем то в этом и был весь смысл. Аварии не реализованы, но это уже детали.
Чисто эксперимент.https://disk.yandex.ru/d/9A0zyGGd2R9Wwg
Решил сделать сортировку. Объясните мне, что значит переменная udint 4 байта? Это я так понимаю что это 32 веса от 0 до 31... По справке это максимальное число 4*294*967*295. По калькулятору это 32 единички.. Все сходится. Но при попытке присвоить значение функции f.31:= true пишет ошибку "или маленькое или большое число"(это мой перевод:rolleyes:).
Объясните, где я не догоняю то???https://disk.yandex.ru/d/043NgOt7q9Ercg
Пробовали присвоить единицу?
у Вас тоже проявляется ошибка? Как она выглядит скрином покажите Вложение 65033
Вложение 65034
при этомКод:function function1: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
inputVariable : bool; //входная переменная с типом данных bool
end_var
function1.31 := inputVariable;
end_function
отрабатывает нормальноКод:unction function1: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
inputVariable : bool; //входная переменная с типом данных bool
end_var
function1.30 := inputVariable;
end_function
Вложение 65035
Это очередной БАГ на ST, на 10 Винде выглядит по другому
function1.30 :=true ; работает нормально Вложение 65038
Если function1.31 :=true ; то ошибка Вложение 65036
Если написать function1.31 :=1 ; то критическая ошибка Вложение 65037
У меня не работает никак. Как бы я пытался что то присвоить 31 биту - сразу ошибка. И при прибавлении 2147483648 - тоже....
Это сторожевой бит)) какой то.
Вот еще цикл. Написано в справке везде во всех позициях в цикле выражения. Но вот так
for i := 0 to i<8 do тоже не дает. Говорит на месте i<8 должно быть целое. Наверное, урезали криво.
И обратится к биту по переменной тоже не дает f.var:= true -нельзя....
И без отладки тоже беда.:o Ну можно в кодесис наваять и отладить, а тут получится и то нельзя и то....
Но как то массивы есть, а какой то ерунды нет или глючит? ну как это так то????
"ps" содесис позволяет обратится к 31 биту
Вложение 65039
ну раз появились проблемы с 31 разрядом, значит начались некие работы по использованию отрицательных целочисленных
Должна провести цикл от нуля до 7... Это очень удобно, особенно при работе с массивами и прочими.
Как то так
for (var i = 0; i < items.length - 1; i++)
Ошибок на порядок уменьшается. Но в ST нет. Ну нет и нет...Чего уж тут теперь.
А что у вас присваивается 31 бит, а у меня нет - это еще хуже. У кого работает, у кого нет. Стабильности нет. В мире стабильности нет, в лоджике нет. Перебор, однако:o
Здравствуйте! Вот такой вопрос. Два вложенных цикла. При переборе до 2500 - пишет бесконечный цикл. При 1000 уже считает все. А на основании каких данных цикл считается бесконечным, или он уложится в цикл программы. В содесис, насколько я почитал и понял есть сторожевой таймер. А здесь как то просчитать можно?