Вот и я о том! Завтра гляну. :)
Вид для печати
ПавелП ну я и ST немного далеки :) не готов пока его использовать на ПР так вообще.
Так ведь время цикла у ПР никак не задается, а получается таким, какое нужно для выполнения конкретной программы,
при 200 внутренних циклах ST, предположим, время цикла ПР будет 1 мс, а при миллионе циклов FOR, время цикла ПР, положим, станет 1 минута.
Т.е. цикл ПР подстраивается под выполнение всего кода, а не наоборот.
Ага. Тогда интересно, на какой частоте работает код.
Код ST скомпилирован, и на частоте проца?
ПР200 - STM32F103VET6, Максимальная частота 72МГц,
минус потери времени на откомпилированные куски кода,
там же чистый АСМ получается (правда, это не известно).
Если в 1мс удастся "втиснуть" 100000 циклов, то это здорово!
Кстати, я не зная про ограничения функции выхода одним словом в 4 байта,
разложил его на биты внутри, высунул руки через ... и выставил уже битами для работы
остальной схемы-программы.
Так что вполне работоспособно, и, что самое главное -
- эффективность программной реализации моего варианта!
Да, "квадратики" тож пригодились, зная булеву алгебру это не проблема,
т.к. есть годные готовые функции.
Осталось "выжать" оптимальность из ЭТОГО всего ПР...
Тут очень бы помогли разработчики, но висит тяжёлое молчание...
Добрый день, Павел! Форум не является официальным каналом технической поддержки. Если у Вас есть вопросы технического характера, Вы всегда можете их направить на почту support@owen.ru.
Доброй ночи, Юлия. Не буду спорить с организацией Вашей поддержки.
Но вопросы всегда одни и те же, судя по форумам. Бесконечное повторение.
И попытки прятать очевидное не помогают нам, пользователям Ваших железяк, и программных продуктов.
Что делать? :)
P.S. Прошу Вас - не спорьте с очевидным.
Я уже изложил ранее вариант поддержки сообществом наработанного сообществом софта.
Примите более эффективное решение.
На меня свалился ПЛК110, и я, эээ, хожу по граблям, забыв про ПР200...
ПЛК110-24.30.P-M - грабли от поддержки прежние.
Таргет есть на "30.I" и "30.M". На мой "30.P-M" не находится на сайте.
CodeSys не опознаёт ПЛК, бодро сообщая:
"Выбранный профиль ПЛК не соответствует профилю целевой платформы. Соединение будет отменено."
Это я не вам жалуюсь, а Юле заодно отвечаю... :cool:
P.S. К сожалению ПЛК глючит, и не поддерживает ВООБЩЕ никакой таргет...
Как не находит, а это что?
Старый, руководство на станице, в Документации https://owen.ru/product/plc110_old
Новый https://owen.ru/product/plk110_m02
Вложение 64456
Перепробовал все варианты, перед тем как тут спрашивать...
Без загрузки таргета прога грузится, эмулируется, работает, но без входов и выходов...
А что значит:
Версия 2.12 (с поддержкой OwenCloud)?
https://owen.ru/forum/image/png;base...AASUVORK5CYII=
https://owen.ru/forum/image/png;base...AASUVORK5CYII=
Версия прошивки модуля.
Вероятнее всего вы неправильно меняете целевую платформу. После изменения надо нажать Дополнения/ Стандартная конфигурация. Вы получите чистую конфигурацию, а всё что в ней надо будет перенести с помощью программы переноса. Перед переносом обязательно пересохраните свой проект.
https://owen.ru/forum/showthread.php?t=18269
Вам для проверки надо просто создать чистый проект с нужной платформой. Если подключиться, значит потом уже переносить конфигурацию.
PLC110.30_l - Это не I это L,
а у вас PLC110.30_M _ этот и используйте PLC110.30_M Вложение 64459
И возможно у вас таргеты старые стоят. Нужна версия 2.17 По ссылке скачайте и установите.
И вообще вам надо было сначала фото ПЛК выложить и год изготовления написать.
Всё по несколько раз пробовал ещё раньше.
Сейчас ещё раз прошёлся - PLC - браузер не работает с ПЛК.
Не откликается на команды, только эхо выводит.
А есть другой вариант настройки, по сети, с терминалки или флешки ?
Боюсь прошивку менять, ещё кирпич получится... :(
Похоже что ему хана. Буду в поддержку звонить после выходных.
Спасибо! :)
Разобрались с ПЛК-110 на соседнем форуме.
Оказалась некая переходная версия.
Запустили.
ПР200 пока в сторону. :)
Буду ST осваивать на ПЛК.
При редактировании ФБ на ST, лоджик не изменяет вид ФБ и не кричит о необходимости обновления блока на поляне. Изменяется вид ФБ только в библиотеке. А на поляне вид как до редактирования. Даже если вы сохраните проект и повторно откроете его, вид ФБ не изменяется. Содержимое, да другое, но облик прежний. Мне надо было добавлять входные переменные. Пришлось забрать новый вид ФБ из библиотеки, а старый с поляны удалить. Версия 2.2.317.0
Добрый день!
Почитал книжки про ST а в Лоджике даже правописание другое, прошу начинающему в работе с тексом закончить триггер, чтобы запоминал состояние, долго бился, не получается. И как переменным состояние присвоить? R := 1; или 0 ругается...
function RS_trig: bool; //RS триггер и тип данных выхода bool
var_input //объявление входных переменных
R : bool; //входная переменная с типом данных bool
S : bool; //входная переменная с типом данных bool
end_var
if R > S then RS_trig := false; end_if
if S > R then RS_trig := true; end_if
end_function
Спасибо!
Зато получилось A XOR B XOR C - забавная и опасная штучка...
будем ждать развития и мануалов
С наступающим!
Всё можно сделать, не хочет запоминать, можно заставить. Скрин==>> Вложение 64908
Код:function RS_trig: bool; //RS триггер и тип данных выхода bool
var_input //объявление входных переменных
R : bool; //входная переменная с типом данных bool
S : bool; //входная переменная с типом данных bool
x : bool; // переменная с типом данных bool
end_var
if S then RS_trig := true; x := true; end_if
if x then RS_trig := true; end_if
if R then RS_trig := false; x:= false; end_if
end_function
Я подобным образом счётчики делал(в виде макроса) ещё когда ST(в ОЛ) в помине не было, в смысле, значение сохранялось во внешней переменной(не в макросе счётчика), по необходимости можно и энергонезависимость добавить. Короче, так можно что угодно сделать, без всякого ожидания "чуда".
Мне не понятно, чего все выжидают!
Сергей0308 наличие ST в FBD, больше одного выхода с блока это точное ожидание чуда :)
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