Возможно Вы забыли:
https://owen.ru/forum/showthread.php?t=24760
https://owen.ru/forum/showthread.php?t=24760&page=3
Вид для печати
неважно что я употребляю в диалогах, в документации нет ни слова про INT Вложение 52218, поэтому не существует утверждения что INT - беззнаковый тип данных
Там даже представитель Овен это подтверждает!
Конечно им пришлось пойти на попятную под справедливым негодованием масс трудового народа!
Только какой смысл был в таких выкрутасах?!
во первых третий раз говорю, давайте дискутировать в рамках документации, а не человека который сделал заявление не понятно на чем основанное, написал три поста в этой теме и все.
во вторых а что такого Максим подтвердил?тут где то есть подтверждения что речь идет об INT? Или все же только о префиксе если понадобиться, но не упоминается про тип данных или где то есть аксиома что целые это обязательно инт-ыЦитата:
А а OWEN Logic беззнаковая арифметика. Если бы было поддержано "беззнаковые целые" и "целые со знаком", то имел бы смысл иметь префикс
Это уже ваши выкрутасы, там изначально это было указано в первом посте темы!
Раньше это по другому разруливалось:
https://www.youtube.com/watch?v=EDmPQiQODm8
Добрый день. Я конечно дико извиняюсь.
Сегодня посмотрел с утра, оказывается моё последнее сообщение просто не прошло. Наверное не туда куда то нажал.
Там я всех поблагодарил за внимание. И сейчас благодарю.
Вспомнил что инт имеет знак и принимает значение от −32768 до +32767 при 16 битах. И в облаке этот формат воспринимается.
Просто данный формат не поддерживает плавающую запятую. И мне теперь конкретно к моей задаче надо разобраться. Сохраняет ли данный прибор "Термодат" температуру округляя до целого числа или как то умудряется хранить и десятичные значения.
На экране вроде как точность до десятых.
Буду пытать производителя .
Ещё раз всем спасибо за участие и отклик. Постараюсь быть внимательнее при отправке сообщений.
С уважением.
Не подумайте что в приведённой цитате про три поста я высказывался о Вас, это имелось ввиду про andrew29, он как раз и пытался донести что общепринято, беззнаковые называть с префиксом U
Добрый день.
Такой вопрос, связанный с облаком: лампочку (для примера) можно включать из 2 мест: с панели и с облака. В ПЛК реализован блок, который принимает данные от панели (если с нее включали) и передает команду/состояние в облако ЛампаПанель ===> ЛампаОблако, а также обратно ЛампаОблако ====> ЛампаПанель. С этим проблем нет. Но есть другая проблема. Если с облака записать скажем 1 (если была выключена), то команда проходит, но в ПЛК ничего не появляется, как был 0, нулем и остался, хотя команда выполняется. ПЛК мастер по отношению к панели. Если убрать блок ЛампаПанель ===> ЛампаОблако, то все начинает отлично работать. Как победить?
Обычно панель должна являться мастером. Это более корректная идеология тогда получается.
Нужно строить арбитр команд. Слать команды импульсно, сбрасывая команды.
Тогда схема управления становится событийной
Вот пример:
Цитата:
FUNCTION_BLOCK Arbiter_CMD
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
CMD_PLC_old:WORD;
CMD_CLOUD_old:WORD;
CMD_PRG_old:WORD;
TON:TON;(*Приведение клоуда к прг*)
TON1:TON;(*Обнуление конфирма*)
TP:TP;(*Попытка взлома, ждем 3 мин*)
Count:INT;
Count1:INT;
R_TRIG:R_TRIG;
F_TRIG:F_TRIG;
END_VAR
VAR_IN_OUT
CMD_PLC:WORD;
CMD_CLOUD:WORD;
CMD_PRG:WORD;
Password:WORD;
Pass_const:WORD;
Confirm:WORD;
END_VAR
(* @END_DECLARATION := '0' *)
TON(IN:=CMD_CLOUD<>CMD_PRG, PT:=T#10s);
IF CMD_PLC_old<>CMD_PLC THEN
CMD_CLOUD:=0;
CMD_PRG:=CMD_PLC;
END_IF;
R_TRIG(CLK:=CMD_CLOUD<>CMD_PRG AND Password<>Pass_const);
IF R_TRIG.Q THEN
Confirm:=2; Count:=Count+1;
END_IF;
(*Попытка взлома, ждем 3 мин*)
IF Count>=3 THEN TP(IN:=TRUE, PT:=T#3m); END_IF;
F_TRIG(CLK:=TP.Q);
IF F_TRIG.Q THEN Count:=0; Count1:=Count1+1; TP(IN:=FALSE); END_IF;
IF CMD_CLOUD<>CMD_PRG AND
Password=Pass_const AND
NOT TP.Q THEN
CMD_PLC:=CMD_CLOUD;
CMD_PRG:=CMD_CLOUD;
Confirm:=1;
END_IF;
TON1(IN:=Confirm<>0, PT:=T#10s);
IF TON1.Q THEN Confirm:=0; Password:=0; END_IF;
IF CMD_PRG_old<>CMD_PRG THEN
CMD_PLC:=CMD_PRG;
CMD_CLOUD:=CMD_PRG;
END_IF;
IF TON.Q THEN CMD_CLOUD:=CMD_PRG; END_IF;
CMD_PLC_old:=CMD_PLC;
CMD_CLOUD_old:=CMD_CLOUD;
CMD_PRG_old:=CMD_PRG;
END_FUNCTION_BLOCK