в функциональном блоке на ST может быть больше одного выхода. В FBD есть ограничения, и только 1 выход на FB
Вид для печати
FBD - функциональны блок
Сейчас ST вообще же блоки не поддерживает? только функции
ну тут может терминологии хромают и недопонимание? FB - просто функция, 1 выход, FBD - по сути макрос, выходов сколько поставим.
Ну или применительно к ОЛ английской версии приведите, в русской то понятия сокращения в латинице нет. Макрос, Функция только
Ну если "больше одного" это несколько булей и/или числа в небольших диапазонах, то чудо можно сделать ректально - внутри фунции упаковать (там удобно с битами), а к выходу прилепить распаковщик. Можно и распаковщики на ST - каждая отдельная функция возьмет своё из общей маски и выдаст нужное.
--
Я не принуждаю к такому
Не, что-то типа Q и PT у таймера, или Код ошибки и далее стековый выход к основному. В общем как сейчас у макросов, только код на ST внутри.
Просто функции с 2+2 не так интересны, а упаковывать и потом распаковывать это больше для инвалидов :) (костыли называются)
ну и понаглею немного - возможность работы с COM портом для организации обмена не только с Modbus устройствами, хотя бы чтобы ПР с несложными протоколами справлялся.... :)
Не, ну нативная работа с сом это вы уже совсем палку перегнули
Не мы такие, среда такая..
Упаковывать снаружи ненужно, все таки входов много.
Q и ET(видимо) - было б совсем просто, но нет TIME() (GetTickCount) и памяти. В конце концов часто ли нужно больше одного месяца?
Да, память заменит "обратная связь", а TIME() обычный счетчик снаружи или канкан с блинком - но это костыли еще большие.
А упомянутый Вами код ошибки в значении ai как раз пример упаковки 2х условно независимых и даже не бульных переменных (здесь потребовались бы прямая память и/или указатели)
//вопрос прямой памяти можно было бы решить, опять же ректально, сняв ограничения на использование разнотипных переменных по одному адресу регистра в слейве. Или уже есть?
Кстати
От ST был бы не плохой обратный подарок в квадратики если бы в художественных полях можно было бы обращатся к битам как в в ST
(если что - я автор предложения)
Валенок да я образно про таймер.
bayk с чего вдруг перегнул? отправить массив, принять массив, посчитать простую CS на основе принятого. Я не говорю про ASCII там варианты и т.д. а хотя бы про простые байтовые...
Сами форум посмотрите - как прикрутить весы к ПР200 сколько тем было?
Может и был уже счетчик, но посмотрев постом ранее на тригер, по образу и подобию сделал счетчик. И работает.
--------------------------------------------------
-----------------------------------------------------------Код:function funcSTU: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
inputVar : bool; //входная переменная с типом данных bool
min, max, mrom : udint;
end_var
var //объявление локальных переменных
temp : udint ; //локальная переменная с типом данных real и начальным значением 13.3
end_var
temp:= mrom;
funcSTU:= mrom;
if funcSTU < min then
funcSTU := min;
mrom:= funcSTU;
end_if
if inputVar and temp = funcSTU then
temp:= funcSTU;
funcSTU := mrom + 1;
if funcSTU > max then
funcSTU := min;
// funcSTU := 0 ;
end_if
end_if
if not inputVar then
funcSTU := mrom;
end_if
end_function
А вот детектор фронтов можно на ST сделать???
И где теги кода кнопочка? Или вручную дописать нужно или как?Вложение 64926
По идее можно и детектор фронтов делать, но так же обратную связь тянуть, как бы смысл уже?
Я счётчики придумывал, потому что таких не было в ОЛ! В принципе что угодно можно довести до абсурда, непонятно зачем этим заниматься?
Помните как Портос говорил: Я дерусь, потому что я дерусь!
https://www.youtube.com/watch?v=uddYLe_9aAA