This is topic Создание программы и привязка к RTM in forum TRACE MODE 7 бесплатная базовая версия / TRACE MODE 7 free basic version at Форум TRACE MODE: техническая поддержка.
Здравствуйте! Посмотрел видеоуроки, не нашел нужного. К примеру, мне надо написать программу в FBD, чтобы по сигналу с дискретного входа контроллера у меня сработал таймер на 10 секунд, после срабатывания подал сигнал на дискретный выход. Понять не могу как в блоках делать привязку к каналам и нет описания в справке по каждому функциональному блоку, таймер, счётчик, булевым операциям. не пойму, описания нет, как к входам и выходам функциональных блоков прописать значения,
Posted by Евгений Волынец (Участник № / Member № 9604) on :
По идее программу создавать в ТМ также как в ПЛК? и привязку делать к дискретным каналам, их и в системе использовать RTM
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Например, есть у меня дискретный вход на контроллере, мне надо в шаблоне программы сделать счётчик или таймер, или и то и другое вместе, последовательно, как мне привязать входы и выходы к счётчику или таймеру, чтобы у меня по константе срабатывал дискретный выход. Сделаю кнопку на в RMT в шаблоне экрана, чтобы по нажатию включать и выключать. Мне пример нужен, в ваших видео я нечего не увидел, или есть примеры ?
Posted by Nico (Участник № / Member № 5342) on :
- воспользоваться справкой - F1 в окне выбора блоков FBD
Posted by Евгений Волынец (Участник № / Member № 9604) on :
я смотрел, мне надо пример в видео посмотреть, чтобы на примере. Если вас не затруднит, есть видео?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вам что сложно? я вас от чего-то срочного отрываю? Пример напишите, не надо даже видео, словами, то-то, там-то , я пойму.
Posted by Nico (Участник № / Member № 5342) on :
Ваш вопрос от 08.01.2024: "нет описания в справке по каждому функциональному блоку, таймер, счётчик, булевым операциям. не пойму, описания нет, как к входам и выходам функциональных блоков прописать значения"
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Здравствуйте! ... Понять не могу как в блоках делать привязку к каналам ...
Здравствуйте! В шаблонах программ (экранов, документов, sql-запросов...) привязка к аргументов этих шаблонов. После переноса шаблона в слой "Система" будет создан канал Call (тип вызова, в данном случае, определяется типом шаблона), его аргументы будут соответствовать аргументам шаблона. Вот их (аргументы канала Call) и привязывайте к каналам.
quote: Здравствуйте! ... нет описания в справке по каждому функциональному блоку...
Есть. Во встроенной Справочной Системе (Файл - Справка или просто F1) есть раздел в Содержании "Программирование алгоритмов - Редактирование FBD-программ - Описание FBD-блоков" Или просто в окне "Палитра блоков" выберите блок и нажмите F1. Сразу попадете на описание выделенного блока.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
В ТМ 7.1 смотрю нет LD? только FBD Это в бесплатной версии так? распечатал лабораторные работы по ТМ 6, там есть язык релейных диаграмм LD, . Мне по привычке конечно проще с LD работать. Возможно надо установить патч?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: По идее программу создавать в ТМ также как в ПЛК? и привязку делать к дискретным каналам, их и в системе использовать RTM
Программу создавать в слое шаблоны программ. Затем готовый шаблон перенести в слой Система. Затем в слое система аргументам канала Call (в данном случае, Call.Programm) привязываете каналы (источники данных и выхода для программы).
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Есть. Во встроенной Справочной Системе (Файл - Справка или просто F1) есть раздел в Содержании "Программирование алгоритмов - Редактирование FBD-программ - Описание FBD-блоков" Или просто в окне "Палитра блоков" выберите блок и нажмите F1. Сразу попадете на описание выделенного блока.
Да , есть, надо только выделить нужный блок из раскрывшегося предложенного и нажать F1? есть описание по каждому блоку. Спасибо, сам бы не догадался.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Например, есть у меня дискретный вход на контроллере, мне надо в шаблоне программы сделать счётчик или таймер, или и то и другое вместе, последовательно, как мне привязать входы и выходы к счётчику или таймеру, чтобы у меня по константе срабатывал дискретный выход. Сделаю кнопку на в RMT в шаблоне экрана, чтобы по нажатию включать и выключать. Мне пример нужен, в ваших видео я нечего не увидел, или есть примеры ?
Такого примера нет. Вы можете прислать подробное описание темы, которую, как Вы считаете, необходимо более подробно осветить в формате видео-урока на sales@adastra.ru
По описанию задачи, Вы пытаетесь написать шаблон программы и нарисовать шаблон экрана одновременно. Эту задачу следует так. На этапе шаблона экрана создаете все до аргумента шаблона. В том числе подачу команды по кнопке. На этапе шаблона программы создаете всю математику, включая входные и выходные аргументы. После того, как эти два этапа готовы, Вы переносите оба шаблона в слой Система - RTM. Будут созданы каналы Call (Programm и Screen). Вот их аргументы уже привязывайте к каналам.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: В ТМ 7.1 смотрю нет LD? только FBD Это в бесплатной версии так? распечатал лабораторные работы по ТМ 6, там есть язык релейных диаграмм LD, . Мне по привычке конечно проще с LD работать. Возможно надо установить патч?
Обратимся к Справочной системе. Раздел Приложение - Отличия версии 7 от версии 6
"Языки программирования – ST и FBD, языки IL, LD и SFC не поддерживаются. В ST нет оператора EXIT." Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Это в бесплатной версии так?
Топик переносится в раздел "TRACE MODE 7 бесплатная базовая версия / TRACE MODE 7 free basic version"
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Ещё вопрос. У меня контроллер, работает по протоколу Modbus, зная адрес дискретного входа(выхода) регистра, создаю канал Modbus. Теперь команда (305), что там надо выбрать? для дискретных каналов ? какой тип данных. Адрес переменной регистра я знаю, указываю. Потом, прототип канала (246), какой выбрать?. Тип аргумента (377) реал, оставляю. Мне надо снимать с концевика значение, замкнут он или разомкнут.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Ещё, как мне адрес переменной привязать к аргументу? любому, чтобы от входа, регистр как аргумент мог использоваться в аргументах программы, значение 0 или 1.
Как мне на выходе программы, блок таймер, выход, 0 или 1 привязать к аргументу, чтобы там был адрес регистра выходного порта на контроллере. Чтобы я мог с помощью таймера делать задержки с интервалом. Ещё, я не пойму как задать константу в блоке таймера, аргументы получается привязать, вот счёт установить не знаю как. Вот в LADR функциональных блоках я мог без проблем константу таймеру задать, счётчики с разным счётом были, тут я понять не могу.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote: Теперь команда (305), что там надо выбрать? для дискретных каналов ? какой тип данных. Адрес переменной регистра я знаю, указываю. Потом, прототип канала (246), какой выбрать?. Тип аргумента (377) реал, оставляю.
Описание источника есть в справке в разделе: "Источники/приёмники TRACE MODE - Группа "Протоколы Net/RS" - Обмен по Modbus". Команда выбирается в зависимости от того, какая команда поддерживается устройством для данной переменной. См. в документации на устройство или в его утилите.
Прототип - тип канала, который будет создаваться при перетаскивании источника в узел проекта.
quote: Ещё, как мне адрес переменной привязать к аргументу? любому, чтобы от входа, регистр как аргумент мог использоваться в аргументах программы, значение 0 или 1.
Если одиночный запрос, то источник привязывается к числовому каналу, если групповой, то к CALL.CHGR, и уже после это канал или аргумент CALL.CHGR привязывается к аргументам канала вызова программы CALL.PROGRAM.
quote: Ещё, я не пойму как задать константу в блоке таймера, аргументы получается привязать, вот счёт установить не знаю как.
Какой блок Вы используете (точное название)? Как он привязан и к каким аргументам?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Создаю шаблон программы, перетаскиваю блок FBD > Задержка на выключение (TOFF) таймер, PT не знаю как привязать к константе, например 5 секунд. Аргумент создаю к INP, понимание есть. Вот понять не могу, как создать аргумент с константой к PT, аргумент делаю, но не пойму как мне задать константу например 5 секунд. Потом компилирую, запускаю отладку, вот в отладке я могу выставить константу для PT, но, каждый раз мне приходится нажимать на пуск отладки, каждый такт считает, доходит до нужной константы 5 и останавливается. Мне надо чтобы при одном пуске таймер отсчитал сам 5 секунд и остановился, выдав нужные значения на выходе таймера. Как мне задать в аргументах константу.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Привязывать аргументы таймера буду к источникам, канал дискретный по протоколу Модбас, номер регистра в ПЛК, дискретный вход или дискретный выход.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Я уже знаю как подключать по Modbus, мне надо разобраться как мне аргументы в шаблоне программы, привязывать к дискретным входам и выходам понимаете что я имею виду?. Компонент, адрес переменной, привязать как к аргументам программы, того же таймера. Чтобы я мог управлять с помощью таймера дискретным входом или выходом. Как привязать, интерпретировать адрес регистра дискретного входа или выхода к таймеру в программе. к аргументам его.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Видео я пересмотрел много. но там нет того что мне надо, примеров нет таких.
Posted by Nico (Участник № / Member № 5342) on :
"Привязывать аргументы таймера буду к источникам, канал дискретный по протоколу Модбас, номер регистра в ПЛК, дискретный вход или дискретный выход"
- у блока FBD нет аргументов а есть входы и выходы, которые ВЫ должны привязать к аргументам шаблона программы - потом перенести шаблон программы в узел TМ получится канал класса CALL - открыть его на редактирование и к его аргументам привязать каналы из этого узла(связанные с источниками)
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: ... мне надо разобраться как мне аргументы в шаблоне программы, привязывать к дискретным входам и выходам понимаете что я имею виду?. ...
Ответ дан выше (ссылка) Создаете шаблоны. Шаблоны переносите в узел RTM. Привязки делаете в узле RTM у каналов Call.Screen и Call.Program
[ 10.01.2024, 12:52: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Nico спасибо брат!
Теперь что по поводу таймера. как мне константу в 5 секунд задать, чтобы я мог её потом в шаблоне экрана менять, чтобы обращаться к константе мог таймера.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Константа задаётся в аргументах
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Напишите мне адрес электронной почты, куда мне скинуть скриншоты, описание того, что я пытаюсь делать. Так будет проще. Тогда вы меня точно поймёте. такое ощущение что мы разговариваем на разных языках,
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Видео сниму если надо, прикреплю.
Posted by Nico (Участник № / Member № 5342) on :
"чтобы я мог её потом в шаблоне экрана менять" - в аргументах шаблонов не надо задавать константы - привязки и/или константы нужно задавать только в аргументах канала CALL !
Posted by Евгений Волынец (Участник № / Member № 9604) on :
аргументах канала CALL
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Как мне выставить в программе константы?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Nico правильно все расписал.
Чтобы из экрана передавать значение в программу необходимо создать графический элемент для посылки значения, например кнопку с динамизацией "Ввести и передать", сделать привязку к аргументу OUT экрана. В узле сделать привязку соответствующего аргумента канала вызова экрана CALL.SCREEN к входному аргументу канала вызова программы CALL.PROGRAM.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Мне в программе надо константу задавать, я пытаюсь понять, как константа задаётся! потом уже, думать как это всё к шаблону экрана привязать и к кнопке. Вот в программе я создаю таймер, как мне привязать константу в 5 секунд? должно быть просто всё, но у вас не так всё просто.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Программа, там есть аргументы и переменные. Переменные не работают, Аргументы с переменными пересекаются. Как мне конкретно, константу таймеру привязать. Константы отдельно, аргументы отдельно, чтобы потом в шаблоне экрана я мог к каждой обратиться и привязать к любой кнопке
Posted by Nico (Участник № / Member № 5342) on :
- освоить базовые операции IDE TM - если константу нужно менять то привязать вход блока к аргументу - в нужном аргументе канала CALL задать значение по умолчанию
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Есть какой-то пример? видео, или лабораторная работа? Я понять не могу. Вот у меня ТМ7.1 . вы можете создать проект, сохранить файл и мне передать по почте, я открою и посмотрю что да как.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Ват-Цап есть у вас?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
канала CALL, что это? где он находится? вы можете простыми словами объяснить а не терминами. Где он этот канал кал. искал. негде ненаписанное
Posted by Nico (Участник № / Member № 5342) on :
читать ответы:
- потом перенести шаблон программы в узел TМ получится канал класса CALL - открыть его на редактирование и к его аргументам привязать каналы из этого узла(связанные с источниками)
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Мне надо создать программу из одного таймера! Как мне задать константу!
Posted by Евгений Волынец (Участник № / Member № 9604) on :
У меня не получается так как вы мне говорили в телефонном разговоре. не работает, не ведёт счёт. Ещё я хочу знать, как мне в таймере задавать константу в сотках и десятках секунды. Я вообще не могу понять, не написано негде, как задавать константу в блоках программы! С каналами и прочими разберусь отдельно! Константы меня интересуют.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Всё хочу знать про константы, как они ставятся. куда привязываются, секунды, сотки, десятки, где и как можно ими манипулировать. Привязать мы успеем их,
Posted by Nico (Участник № / Member № 5342) on :
- константа это просто число( плавающее или целое ) - надо прочитать про FBD блок в каких единицах что задается - констант в TM много - если интересует как в FBD то help->Программирование алгоритмов->Редактирование FBD-программ->Привязка входов и выходов FBD-диаграммы - большая просьба внимательно читать ответ "- если константу нужно менять то привязать вход блока к аргументу"
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Уже по разному пробовал, просто даже цифры выставлял на константу 5 , на управляющий 1, это входа самого блока, делаю компиляцию, ошибок нет, запускаю отладку, тоже нечего не работает. Не делал аргументы, не делал переменные, толька работа с самим блоком.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Как на входе PT таймера сделать 5 секунд константу, чтобы на выходе таймера также отрабатывало 5 секунд, чтобы я видел. Толька в блоке счетчик в самой программе. Программа простая, один таймер и всё! нет негде описания, не в справочнике, негде нет и описания в справке по блокам, таймера!. нет негде.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Мне надо, секунды чтобы можно было выставлять, сотые секунды, десятые секунды! как это делается? или вы сами не знаете?
Posted by Nico (Участник № / Member № 5342) on :
- внимательней читать ответы "- если константу нужно менять то привязать вход блока к аргументу" вход INP c 1 сбросить то в 0 надо
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Я без аргументов сейчас пробую работать, ВНИМАТЕЛЬНО надо читать что я пишу вам!. Как на входе PT таймера сделать 5 секунд константу, чтобы на выходе таймера также отрабатывало 5 секунд, чтобы я видел. Толька в блоке счетчик в самой программе. Программа простая, один таймер и всё! нет негде описания, не в справочнике, негде нет и описания в справке по блокам, таймера!. нет негде.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
таймер не работает, не считает!. Счётчик подключил, к выходу QI счёт идёт в таймере, что-то там считает, но я не вижу визуально счёта, там НОЛЬ стоит на месте. Как выставить у таймера секунды, сотки, десятки секунд. Чтобы я мог видеть отсчёты, которые я задал на входе таймера.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Я уже вам столько раз задал один и тотже вопрос! вы мне не разу не ответили по делу. <отредактировано>
[ 12.01.2024, 10:44: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by Nico (Участник № / Member № 5342) on :
из help: TP.PT , TP.QT - в тактах пересчета отладка в TM 2х типов: пошаговая и циклическая
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Как на входе PT таймера ...
Блока РТ таймер нет. Возможно, Вы имели ввиду ТР (Импульс произвольной длины) в разделе "Триггеры и счетчики".
Если мое предположение верно, то Как на входе PT таймера сделать 5 секунд константу, чтобы на выходе таймера также отрабатывало 5 секунд, чтобы я видел. В описании блока, как ранее сообщалось достаточно в Палитре блоков выделить блок и нажать F1, сказано Длительность импульса в тактах пересчета То есть в вашем случае необходимо учесть, что длительность будет в тактах. Придется либо заданное значение умножать на коэффициент (учесть период пересчета канала вызова шаблона программы Call.Program) или задать период пересчета канала равный 1 секунда.
quote:Отправитель / Originally posted by Евгений Волынец: ... нет негде описания, не в справочнике, негде нет и описания в справке по блокам, таймера!. нет негде.
Описание FBD-блоков есть. Как его вызвать Вам сообщалось неоднократно. При том сообщалось как вызвать информацию по конкретным блокам, так и как вообще вызвать Справочную систему. У Вас Справочная система вызывается по нажатию F1?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Справочная по нажатию вызывается.
Задержка на включение (TON) ТАЙМЕР! При изменении значения входа INP с 0 на любое ненулевое выход QI принимает значение 1 с задержкой в PT тактов пересчета, при этом выход QT индицирует число тактов, прошедших с момента изменения INP.
Чтобы обнулить выходы QI и QT, нужно подать 0 на вход INP. ----------- Теперь , я не создаю аргументы, не делаю переменные, я просто на входе INP ставлю 1, константу PT ставлю 5, выход QI соединяю с счётчиком, выход QT я за ним наблюдая!. Как мне сделать так. чтобы я видел значение на выходе QT, как сделать, чтобы я мог константу задать в секундах, миллисекундах. Мне надо видеть когда я по шагам отрабатываю, отлаживаю программу. Я должен видеть счёт! я его не вижу. Мне надо управлять константой самому. Потом уже, я буду и аргументы присваивать и переменные и
Posted by Nico (Участник № / Member № 5342) on :
попытка номер 3: "Мне надо управлять константой самому." привязать к аргументу, иначе константу не изменить
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вот оно как. Получается, мне надо будет написать аргументы к входам, выходам программы, потом перенести в канал РТМ, Создать шаблон экрана, на экране создать например кнопки, каждая кнопка будет иметь аргумент с переменно? и только тогда я смогу аргументы между собой объединить, тогда и каждой кнопкой смогу задавать константу разную? правильно?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
В программе самой я смогу отработать, и только, проверить, правильность логики мною собранной из блоков, и всё? так выходит.
Posted by Nico (Участник № / Member № 5342) on :
-нет не так -при пошаговой отладке в IDE можно ручками изменять значения аргументов -каждый шаг( следующий цикл пересчета ) нажимать треугольник(запустить/продолжить) клавиша F5( как в большинстве отладчиков )
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вот, у меня только таймер. Аргументы Пуск это "INP" Константа это "PT" Выход "QT" Это не получается привязать к Аргументу почему-то, но он должен показывать значение 1 и 5константа мне указать в Значение по умолчанию? Пробовал, не работает как мне надо. Я не могу видеть изменение, счёт на выходе блока
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Как мне менять константу
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Объясните, покажите на примере, сделайте образец, отправьте мне, открою, посмотрю, или видео сделайте. Объясните так. чтобы я понял.
Posted by Nico (Участник № / Member № 5342) on :
- образец чего??? какую кнопку жать !!!! - входы могут быть привязаны к любым аргументам выходы только к аргументам in/out, out прочитать: help->Программирование алгоритмов help->Программирование алгоритмов->Отладка программ
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Мне надо задавать константы программе, чтобы я мог менять там, секунды. 0,100 секунды, ,010 секунды Если я в самой программе не могу это делать, чтобы видеть. Как мне это реализовать.?
Posted by Nico (Участник № / Member № 5342) on :
- можете - надо перевести число задающее секунды или миллисекунды в циклов грубый подсчет: число циклов = мс/период пересчета(атр 0 на основной вкладке редактора узла) - или использовать FBD блок для получения значения в мс между вызовами данной программы - или не пытаться делать простейшую программу, а воспользоваться CALL.LATCH(18) - или еще парочкой способов - почитайте спокойно help, освойте базовые свойства TM ( не зная инструмента очень тяжело им пользоваться )
Posted by Nico (Участник № / Member № 5342) on :
PS -константа в программе на то она и константа ее менять нельзя -значение аргумента можно в реальном времени, а задав начальное значение в IDE Вы получите свою "константу" изменяйте ее или не изменяйте
Posted by Евгений Волынец (Участник № / Member № 9604) on :
IDE это канал? надо создать канал в источниках?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
У меня посылка идёт с программой и исполнительным модулем. там книги есть. там в книгах описания есть подобного?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Устал я за сегодня. Завтра продолжу .
Posted by Nico (Участник № / Member № 5342) on :
- это инструментальная система - а Вы что их даже не листали - посмотрите все-таки help
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Нет, посылка идёт с Москвы ещё числа с 20 декабря, всё не как не доедет. Вот, пытаюсь, пока на руки не получил, тут пробую.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Примеры нужны. Вот видео пересмотрел многое, некоторые раз по 10 пересматривал, всё понятно мне, вот теперь с программами разбираюсь. Много информации, по-другому чем если бы изучал программирование ПЛК, там мне понятно.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Уже зато могу с ПЛК связь наладить, протокол модбас усвоил, тут как настраивать, прописывать каналы. По началу вообще не знал как да что.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
С программами как-то за мудрено
Posted by Евгений Волынец (Участник № / Member № 9604) on :
У вас бесплатная программа я только сейчас понял, через время даже в программе, блоки не слушаются, сразу и не поймешь. Перезапустил, стало считать, только выхода блоков не привязываются к аргументам. Входа в блоки привязываются, выхода нет.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Другой момент, не могу аргумент привязать к выходу блока. Входа привязываются, выход нет. Как мне тогда результат программы получить? . Задержка на выключение (TOFF), выход QT индицирует число тактов. Мне это число тактов надо аргументировать и потом использовать в шаблоне экрана как вещественное число.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вы зачем удаляете переписку. Толька что вам написал о проблеме с блоками, вы удалили сообщение.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
В общем, как вы мне писали, чтобы задавать константу надо создать канал. Я создал источник меандр, там выставил как дискрет_1, период пересчёт 1, размерность периода 1 секунда, миллисекунд там нет, мне нужны сотки. Тогда это получается канал. Мне надо будет делать 25 каналов входа с ПЛК и 32 канала выхода ПЛК, для расчёта мне ещё надо будет делать каналов 60. не меньше, если таким Макаром. так дело не пойдёт. Я хочу расчёты по времени в программе , в одной программе создать, чтобы только оттуда можно было брать, с выходов блоков через аргументы. как мне это реализовать? У меня исполнительный модуль на 128 каналов, может не хватить, тогда вся работа напрасно. сидеть придумывать. как обойти. Давайте предложите варианты.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вот сейчас опять таймер не работает, не считает, пошагово даже пробую. Это такие сложности в бесплатной программе? Это я мучаюсь всё зря в бесплатной программе?. надо платную версию короче, нечего толкам не работает. что-то работает. что-то не работает, как в бесплатной версии чему-то учиться если вчера таймер не работал. потом перезапустил программу он заработал но выход таймера не активен. Утром запустил, опять таймер не работает.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Пример: Создаю генератор меандра, перетаскиваю в каналы, выставляю секунды. Дальше, чтобы мне на экране кнопкой включать-выключать, разрешать передачу сигнала на тренд через кнопку, кнопка будет передавать при включении и выключении?. Или мне надо в программе создать блок Триггер с приоритетом по установке (SR) где на вход INR привязываем аргумент кнопки. INS привязываем к аргументу и к генератору меандра. Выход Q аргументируем и привязываем к аргументу тренда?
Posted by Nico (Участник № / Member № 5342) on :
"Другой момент, не могу аргумент привязать к выходу блока" - аргумент должен быть типа out "чтобы задавать константу надо создать канал" - такого не писал - чтобы шаблон в реальном времени исполнялся он должен быть перетащен в узел TM(создаться канал класса CALL),в аргументах которого можно задавать привязки и значения по умолчанию
Posted by Nico (Участник № / Member № 5342) on :
- Вы help хоть как-то читали ??? - возьмите любой пример и изучите его
- формулировка Вашей задачи ????: 1) есть 25 однобитовых сигналов 2) если входной битовый сигнал стал = 1 и не изменяется в течении Заданного Времени, то на соответствующим выходе выдать 1 3) если входной битовый сигнал стал = 0 (а был = 1) на соответствующим выходе выдать 0 если что-то в этом роде, то задача элементарна и делается ну минут за 5
" Дальше, чтобы мне на экране кнопкой включать-выключать, разрешать передачу сигнала на тренд через кнопку, кнопка будет передавать при включении и выключении?" - какое отношение данная фраза имеет к генератору - и честно не понятна от слова совсем
Posted by Евгений Волынец (Участник № / Member № 9604) on :
help я читаю, по этому поводу тему закроем! Многое не понятно "Другой момент, не могу аргумент привязать к выходу блока" - аргумент должен быть типа out - Оно вообще не привязывается к этому выходу в бесплатной версии. Мне любопытно, в платной будет привязываться? или такая тоже проблема будет. Читал описание базовой версии ТМ7, там не написано что с такого то по такое то время какие-то функции программы не работают, или что в программе в блоках нельзя привязать аргументы к выходам. Я читаю, не надо думать что я не изучаю ваш Хелп. там много чего нет, впринцепе.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
- формулировка Вашей задачи ????: 1) есть 25 однобитовых сигналов 2) если входной битовый сигнал стал = 1 и не изменяется в течении Заданного Времени, то на соответствующим выходе выдать 1 3) если входной битовый сигнал стал = 0 (а был = 1) на соответствующим выходе выдать 0 если что-то в этом роде, то задача элементарна и делается ну минут за 5\ --------------
Как раз таки у3 меня все сигналы меняются и входы и выходы, также внутри программы мне надо обрабатывать, задавать периоды по времени на исполнение команды через дискретный выход. да, там 0 и 1
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вы смотрю даже не пытаетесь понять меня, я прошу вас подсказать или пример дать, вы меня отсылаете к вашим хелпам. Я когда приобретал ваш программный пакет, внимательно изучил на сайте условия техподдержки, по этому и решил работать на вашей платформе. теперь, после приобретения, я читаю сухие ответы!. Уже сколько написал к вам. звонил даже, я не вижу поддержки технической. Или она заключается в том как установить на компьютер ТМ7 ? в этом ваша техническая поддержка? меня такой вариант не устраивает. Ещё не на один мой вопрос, просьбе о помощи вы не ответили! не на один! Чёткого и правильного ответа нет. Это вам кажется что ответили, иначе я бы не писал сюда!.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
В таком случае я буду звонить вашему руководству, пусть руководитель мне помогает.
Posted by Nico (Участник № / Member № 5342) on :
- click мышкой на входе или открывается список аргументов, которые можно привязать - перетащить аргумент на вход/выход блока тащить надо из аргументов шаблона программы, которая модифицируется - так аргумент в шаблоне, который нужно привязать какого типа ??? PS help не мой, так как не сотрудник Adasta помогать Вам не хочется
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Напишите мне адрес электронной почты, куда мне скинуть скриншоты, описание того, что я пытаюсь делать. Так будет проще. Тогда вы меня точно поймёте. такое ощущение что мы разговариваем на разных языках,
Скриншоты или видео без подробного описания что делаете, как делаете и что ожидаете получить не продуктивны. В то же время, подробного описания в большинстве случаев достаточно для решения проблем.
Формулируйте вопрос четко и понятно, используя термины Trace Mode. Например, Вы часто использовали фразу "FBD-блок "Таймер"". Такого блока нет. А стоило с самого начала написать название блока и было бы сэкономлено много времени.
Используйте термины или названия, используемые в Trace Mode.
[ 12.01.2024, 12:51: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Программный алгоритм. Задержка на выключение (TOFF) выход QT. Аргумент к выход QT не привязывается.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Мне надо полностью в шаблоне программы создать программу, которая будет по заданным задержкой в PT исполнять на выход QT, с которых, им будет несколько, будут потом управлять дискретными выходами в ПЛК. Давайте решим сначала, как мне результат получать с выход QT, чтобы я мог этот результат привязать к аргументу. ТМ? у меня сейчас базовая установлена. Профессиональная ещё в пути.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Ват-Цап есть у вас?
Официальные каналы связи указаны на сайте и в Личном Кабинете.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: канала CALL, что это? где он находится? вы можете простыми словами объяснить а не терминами. Где он этот канал кал. искал. негде ненаписанное
Во встроенной Справочной системе есть вся необходимая информация. Если ее открыть на Содержании, то видны разделы, в том числе "Каналы". Если этот раздел открыть, то увидите раздел "Канал класса Call".
Неоднократно Вам сообщалась фраза "Канал Call.Screen" и "Канал Call.Program".Если в Справочной Системе раскрыть раздел "Канал класса Call", то там будет список каналов Call, в том числе указанные выше.
Диалог возможен только придерживаясь терминов или принятых названий (непосредственно в самой Системе Разработки). Вы уже использовали фразу "Таймер", но стоило сразу написать название FBD-блока.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
С "Канал Call.Screen" и "Канал Call.Program" я уже немного разобрался, я понял почему они называются так. Вы мне на предыдущий пост ответьте, шаблон программ- программа- Задержка на выключение (TOFF) выход QT. Аргумент к выход QT не привязывается.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: ... Ещё я хочу знать, как мне в таймере задавать константу в сотках и десятках секунды. ...
Блока "Таймер" нет. Какой блок Вы используете? В описании блоков указано как работает блок. Большинство работает в тактах (период пересчета узла, по умолчанию равен 500мс). Следовательно, "десятки секунд" задаются как число, равное "десятки секунд, деленные на период пересчета".
Точнее можно сказать, только зная какой блок используется и для решения какой задачи.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Я без аргументов сейчас пробую работать, ВНИМАТЕЛЬНО надо читать что я пишу вам!. Как на входе PT таймера сделать 5 секунд константу, чтобы на выходе таймера также отрабатывало 5 секунд, чтобы я видел. Толька в блоке счетчик в самой программе. Программа простая, один таймер и всё! нет негде описания, не в справочнике, негде нет и описания в справке по блокам, таймера!. нет негде.
Ознакомьтесь с разделом Справочной системы "Программирование алгоритмов - Отладка программ". Тут как раз описано как проводить запуск шаблона программы на этапе отладки написанного кода, до использования каналов и реальных источников сигнала. Только имитация.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
<отредактировано>
[ 12.01.2024, 12:52: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Я уже вам столько раз задал один и тотже вопрос! вы мне не разу не ответили по делу. <отредактировано>
Просьба отказаться от эмоциональных высказываний, в том числе в адрес других Пользователей. В противном случае, могут быть применены меры.
Если Вы считаете, что полученный ответ не соответствует заданному вопросу или не отвечает на него, то продуктивно, задать этот вопрос более развернуто и используя принятую терминологию.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Мне надо полностью в шаблоне программы создать программу, которая будет по заданным задержкой в PT исполнять на выход QT, с которых, им будет несколько, будут потом управлять дискретными выходами в ПЛК. Давайте решим сначала, как мне результат получать с выход QT, чтобы я мог этот результат привязать к аргументу. ТМ? у меня сейчас базовая установлена. Профессиональная ещё в пути.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Справочная по нажатию вызывается.
Хорошо. Большинство заданных вопрос Пользователей уже отвечено именно в Справочной Системе.
Задержка на включение (TON) ТАЙМЕР!
Блок TON это не "Таймер", а "Задержка на включение". Придерживайтесь принятых названий. Это позволит оперативнее получить положительный результат на заданный вопрос.
Теперь , я не создаю аргументы, не делаю переменные, я просто на входе INP ставлю 1, константу PT ставлю 5, выход QI соединяю с счётчиком, выход QT я за ним наблюдая!. Как мне сделать так. чтобы я видел значение на выходе QT, как сделать, чтобы я мог константу задать в секундах, миллисекундах. Мне надо видеть когда я по шагам отрабатываю, отлаживаю программу. Я должен видеть счёт! я его не вижу. Мне надо управлять константой самому. Потом уже, я буду и аргументы присваивать и переменные и Первым делом, как Вам рекомендовали выше, ознакомьтесь с "Программирование алгоритмов - Отладка программ". Без аргументов отладку шаблона программы будет произвести неудобно. Рекомендуется использовать аргументы (и задать начальные значения).
Если Вы отлаживаете шаблон программы с одним блоком TON без аргументов, то 1. установите блок на поле шаблона. 2. задайте вход PT, например 10 (тактов). 3. задайте вход INP, например 1 (Вы же без аргументов, но необходимо подать команду блоку) 4. Компилируете шаблон (читаем справку) 5. Запускаем шаблон на разовую отработку. Выход QI (описание входов/выходов блока в справке) равен 0, а QT=1. 6. Запускаем шаблон еще раз на разовую отработку. QI=0, QT=2. 7...12 запускаем на разовую отработку 13. девятый раз запускаем на разовую отработку. QI=0, QT=9 14. десятый раз запускаем. QI=1, QT=10. Все. Задержка отработала. Через 10 тактов после получения INP не равного 0, выход QI стал равен 1.
[ 12.01.2024, 12:53: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Вот оно как. Получается, мне надо будет написать аргументы к входам, выходам программы...
Для отладки шаблона программы, так будет нагляднее и проще.
... потом перенести в канал РТМ, Создать шаблон экрана, на экране создать например кнопки, каждая кнопка будет иметь аргумент с переменно? и только тогда я смогу аргументы между собой объединить, тогда и каждой кнопкой смогу задавать константу разную? правильно? В дальнейшем, да. Уже на этапе отладки совместной работы программы с другими компонентами системы.
[ 12.01.2024, 11:03: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by Евгений Волынец (Участник № / Member № 9604) on :
С этим я уже разобрался. Я нажимаю во время отладки на плей, треугольник, задержка должна отсчитать сколько надо и на выходе QT показать число, числа нет. Я число вижу только когда я нажимаю пошагово, тогда счёт идёт задержки.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вот, сейчас опять, задержку проверял, выставил 5 на задержку, 1 на вход, запустил отладку, нечего не происходит, даже пошагово отладку делал, тоже счёта нет. Я подозреваю что это связанно с самой программой ТМ7 бесплатной, базовой версии. буду ждать Коммерческую, иначе я устал уже. то работает, то не работает. что-то не работает. так невозможно чему-то научиться.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Как мне менять константу
Ответ дал Пользователь (ссылка) Именно по этому Вам рекомендовалось создать аргументы и их привязывать в входах/выходам FBD-блоков
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вот , запустил профайлер, экран белый, остановил. Что-то с программой, какие-то ограничения.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Отправитель / Originally posted by Евгений Волынец: Как мне менять константу Ответ дал Пользователь (ссылка) Именно по этому Вам рекомендовалось создать аргументы и их привязывать в входах/выходам FBD-блоков --------- Я его не понял. Он объяснил как опытному специалисту, я ещё новичок, многое не знаю.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вот с кнопкой пытаюсь разобраться, мне надо чтобы генератор через кнопку проходил, следовательно у кнопки должно быть 2 аргумента. Нажал, сигнал генератора на Тред подается, отжал, прекратился. Что-то не получается. Один аргумент на генератор, второй аргумент на тренд. Два состояния у кнопки должно быть, делаю два состояния. Что не так делаю?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Вы мне ответьте, почему не получается в блоке задержки в программе привязать аргумент к выходу блока задержки.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: IDE это канал? надо создать канал в источниках?
IDE - integrated development environment - Интегрированная Среда Разработки.
В слое "Источники" создаются только источники (генераторы или источники связи с устройствами/протоколами)
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Перезапустил, стало считать, только выхода блоков не привязываются к аргументам. Входа в блоки привязываются, выхода нет.
К выходам блоков привязываются, как Вам сообщалось по телефону, аргументы с типом out или in/out (столбец Тип I/O в таблице аргументов). К входам привязываются, естественно, аргументы с типом in или in/out.
Аргументы типа in/out рекомендуется использовать только продвинутым Пользователям.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Вы зачем удаляете переписку. Толька что вам написал о проблеме с блоками, вы удалили сообщение.
Сообщения может удалить автор сообщения.
Так же, этот функционал доступен нам, но мы сообщения не удаляем. Удаляется (с пометкой места удаления) только текст, нарушающий правила Форума.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
К выходам блоков привязываются, как Вам сообщалось по телефону, аргументы с типом out или in/out (столбец Тип I/O в таблице аргументов). К входам привязываются, естественно, аргументы с типом in или in/out. ---------------- Точняк, надо было в аргументах оут выставить, сразу привязка заработала. Так это всё меняет дело. Спасибо! что настояли и объяснили. 2 дня пляски с бубном )))). Теперь с кнопкой выше пост писал, там тоже наверное какие-то секреты.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: help я читаю, по этому поводу тему закроем! Если на заданный на форуме вопрос есть в Справочной Системе, то ответ ожидаемо будет состоять из рекомендации ознакомиться с определенным разделом Справочной Системы.
quote: Многое не понятно
В этом случае, для достижения положительного и оперативного результата, пишите что делаете, на какой раздел Справочной системы опираетесь и что в нем вызывает для Вас трудности.
quote:"Другой момент, не могу аргумент привязать к выходу блока" - аргумент должен быть типа out - Оно вообще не привязывается к этому выходу в бесплатной версии. Мне любопытно, в платной будет привязываться? или такая тоже проблема будет.
quote:Я читаю, не надо думать что я не изучаю ваш Хелп. там много чего нет, впринцепе.
Если Вы считаете, что что-то в справочной системе недостаточно описано, то сообщайте нам с указанием раздела и что именно недостаточно.
[ 15.01.2024, 12:27: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Вот с кнопкой пытаюсь разобраться, мне надо чтобы генератор через кнопку проходил, следовательно у кнопки должно быть 2 аргумента. Нажал, сигнал генератора на Тред подается, отжал, прекратился. Что-то не получается. Один аргумент на генератор, второй аргумент на тренд. Два состояния у кнопки должно быть, делаю два состояния. Что не так делаю?
Не совсем ясна практическая часть решаемой задачи... У Вас есть сигнал 0/1. Вы его отображаете на экране на Тренде. Зачем его убирать?
В общем случае, ... ...самый простой вариант, на ГЭ Тренд задать видимую Легенду и управлять видимостью необходимых кривых в реальном времени. ... более сложный вариант, кнопкой управлять состоянием канала (атрибут 3, SC – Состояние, описание атрибута в Справочной системе) ... второй более сложный вариант, значение из канала и состояние кнопки передавать в программу, в которой будет происходить мат.обработка (например, умножение; программа производит операцию умножения сигнала и состояния кнопки и результат уже выводить на тренд).
Без понимания решаемой задачи мы не можем рекомендовать тот или иной вариант решения.
п.с. у кнопки один аргумент, в который подается значение. В ряде случаев можно задать аргумент1, как источник, и аргумент2, как приемник.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: С этим я уже разобрался. Я нажимаю во время отладки на плей, треугольник, задержка должна отсчитать сколько надо и на выходе QT показать число, числа нет. Я число вижу только когда я нажимаю пошагово, тогда счёт идёт задержки.
Верно. Рядом с кнопкой "Запустить/Продолжить отладку" есть кнопка "Отладка циклическая" (с символом бесконечности). Нажмите на нее и при следующем запуске шаблона программы на отладку шаблон будет работать до ручного останова.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Вот, сейчас опять, задержку проверял, выставил 5 на задержку, 1 на вход, запустил отладку, нечего не происходит, даже пошагово отладку делал, тоже счёта нет. Я подозреваю что это связанно с самой программой ТМ7 бесплатной, базовой версии. буду ждать Коммерческую, иначе я устал уже. то работает, то не работает. что-то не работает. так невозможно чему-то научиться.
Отладка шаблона в базовой и профессиональной Средах Разработки работает одинаково. Ознакомьтесь с пошаговой инструкцией (ссылка) с учетом имеющихся аргументов и циклической отладки.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Вот , запустил профайлер, экран белый, остановил. Что-то с программой, какие-то ограничения.
Как Вы запустили Профайлер? Из Среды Разработки или по ярлыку на Рабочем Столе ПК или меню ПУСК?
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Из среды разработки
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Отправитель / Originally posted by Евгений Волынец: Как мне менять константу Ответ дал Пользователь (ссылка) ... Я его не понял. Он объяснил как опытному специалисту, я ещё новичок, многое не знаю.
Если аргумента нет, то, во время запущенной цикличной отладки, поменять константу нельзя. Константа постоянна и неизменна.
Если аргумента нет, то во время однократной отладки можно константу поменять между двумя запусками отладки. Дважды кликнуть по значению константы и поменять.
Если аргумент есть, то во время запущенной цикличной отладки поменяйте значение в окне "Отладчик".
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Попробовал как вы написали. не получается. Я видео снял 40 секунд, давайте я видео отправлю вам. Может опять что-то не так делаю?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Вот , запустил профайлер, экран белый, остановил. Что-то с программой, какие-то ограничения.
quote:Отправитель / Originally posted by Евгений Волынец: Из среды разработки
Значит у Вас в узле RTM нет канала Call.Screen (канал вызова шаблона экрана) или у этого канала (и шаблона) нет аргументов (в этом случае должно быть сообщение об ошибке при "Сохранении для МРВ" проекта). Так же есть вариант, что "белый экран" это как раз Ваш экран. Проверьте шаблон экрана.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Ошибок не было.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Да, проверил, вы правы. Я в Узел РТМ не перетянул Шаблон экрана. Работает.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
С кнопкой теперь разобраться надо.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: С кнопкой теперь разобраться надо.
Ответ дан (ссылка) Posted by Евгений Волынец (Участник № / Member № 9604) on :
По кнопке, я понял, она выдаёт или 0 или 1. Чтобы передавать, чтобы функция кнопки исполняла сквозную передачу, вернее не сама кнопка, надо аргумент кнопки передать в программу, блок Триггер с приоритетом по установке (SR). Тогда на вход INS подавать через аргумент генерируемый сигнал меандр, о-1. Кнопку аргументом как раз привязать к значение входа INR, тогда выход блока Q привязать через аргумент к Тренду. Тогда я думаю будет работать как я хотел. Генератор выдаёт импульсы, кнопка включает или выключает подаваемые сигналы на тренд по средствам "Триггер с приоритетом по установке (SR)". Есть ещё варианты какие. Чтобы не создавать канал. У меня просто коммерческая версия исполнительного модуля на 128 каналов. Если на каждую функцию делать отдельный канал, у меня не хватит
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Идея для добавления кнопок в экранные функции. Кнопку с сквозным канало, чтобы не создавать отдельно канал, нажал, она пропустила сигнал, там уже выбрать в настройках какой сигнал, синус, меандр или 0 или 1. Удобно было бы.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: По кнопке, я понял, она выдаёт или 0 или 1. Чтобы передавать, чтобы функция кнопки исполняла сквозную передачу, вернее не сама кнопка, надо аргумент кнопки передать в программу, блок Триггер с приоритетом по установке (SR). Тогда на вход INS подавать через аргумент генерируемый сигнал меандр, о-1. Кнопку аргументом как раз привязать к значение входа INR, тогда выход блока Q привязать через аргумент к Тренду. Тогда я думаю будет работать как я хотел. Генератор выдаёт импульсы, кнопка включает или выключает подаваемые сигналы на тренд по средствам "Триггер с приоритетом по установке (SR)". Есть ещё варианты какие.
quote:Есть ещё варианты какие. Чтобы не создавать канал. У меня просто коммерческая версия исполнительного модуля на 128 каналов. Если на каждую функцию делать отдельный канал, у меня не хватит
Вы читаете ряд битовых сигналов. Так как у Вас ModBus, то вопрос - Вы читаете registers или coils? Если register, то в каждом регистре только 0/1 или больше?
Так же, уже классическое читайте Справочную Систему Программирование алгоритмов - Программирование алгоритмов в TRACE MODE - Выполнение программы в реальном времени Тут как раз то, что Вам необходимо
[ 15.01.2024, 12:26: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by Евгений Волынец (Участник № / Member № 9604) on :
ModBus у меня 0-1, но они для исполнения, счёт должен вестись в программе. Я так думал в идеале. В ПЛК можно, к примеру, тот же таймер, задать на секунды, сотки, десятки, отдельные таймеры там, выбрал, выставил и готово. В ТМ 7 это сложнее, В самой программе надо нагородить, чтобы этого достичь. Есть вариант через каналы, но , это уже другой функционал, это добавление каналов. Сделайте программу дороже, добавьте как в ПЛК счётчики. 3 вида, чтобы можно было выбрать, без усложнения. В ТМ 7 надо нагородить, голову сломаешь, столько аргументов дополнительных, . Дороже сделайте, раза в 2, но упростите. Работал с Сименсом ПЛК, китайцами, Овен, почему под их базу программную не подстроиться?. Сложно, надо переформатироваться, под ТМ 7. Надо перстраиваться, упрощать.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Ладно, завтра разберёмся. буду дальше изучать. <отредактировано>
[ 12.01.2024, 16:25: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: ModBus у меня 0-1, ...
Вы читаете регистры или коилы? Какая функция?
quote: Сложно, надо переформатироваться, под ТМ 7. Надо перстраиваться, упрощать.
ST и FBD реализованы согласно стандарту МЭК. Перестраиваться не надо. Надо следовать стандарту.
[ 15.01.2024, 12:26: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Читаю регистры.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Надо по нажатию кнопки на экране подавать команду на включение командой ModBus подаваемой в серводрайвер. Как реализовать ?. Также, чтобы можно было программно включать серводрайвер через регистр ModBus.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Какие варианты есть сделать задержку 1 секунда, 0.100, 0.010, чтобы не создавать каналы, чтобы можно было с помощью кнопки менять задержку. В программе я не вижу возможности менять задержку.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Шаблон программ, программа, есть аргументы и есть переменные, понять пытаюсь, переменные как присвоить к блоку задержке вход PT. Не за аргументы, переменные.
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Я правильно понимаю, у блоков в шаблоне программ нет функции настройки. редактирования? чтобы сам блок настроить
Posted by Евгений Волынец (Участник № / Member № 9604) on :
Шаблон экрана, текст, значение; мне чтобы с блока задержки получать значение, достаточно с выхода блока задержки через аргумент привязать? или надо с выхода блока задержки надо подвести к блоку " Пересылка значения (MOVE)" и с него уже через аргумент на Шаблон экрана, текст, значение. В ПЛК я так делал, чтобы ошибок не было, напрямую в ПЛК даёт ошибки. тут как? Тип значения в аргументах на добудет менять? или оставить реал?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Читаю регистры.
сомнительно, что бы в одном регистре был всего один бит. Возможно, Вы все-таки читаете не отдельными битами, а целиком 16 бит. В этом случае, у Вас одним каналом будет читаться состояния 16 устройств. Проверить возможность этого варианта можно с помощью карты сигналов устройства.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Какие варианты есть сделать задержку 1 секунда, 0.100, 0.010, чтобы не создавать каналы, чтобы можно было с помощью кнопки менять задержку. В программе я не вижу возможности менять задержку.
Ответ дан выше (ссылка) Posted by Евгений Волынец (Участник № / Member № 9604) on :
сегодня получил посылки с ПО и книгой практическое проектирование, посмотрел, почитаю.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Надо по нажатию кнопки на экране подавать команду на включение командой ModBus подаваемой в серводрайвер. Как реализовать? ...
Предположим, Вы уже знаете необходимую команду. В ГЭ Кнопка задаете действие по нажатию (например, прямая передача необходимой команды). Команда с кнопки передается в аргумент канала вызова экрана Call.Screen. Далее, значение аргумент экрана передается дальше (например в канал записи (output) в устройство). Т.е., работать необходимо с шаблоном экрана, с каналом вызова этого шаблона экрана и с каналом связи с источником ModBus.
quote: ...Также, чтобы можно было программно включать серводрайвер через регистр ModBus.
Что Вы подразумеваете под "программно включать"? Что бы программа самостоятельно принимала решение об управлении, без человека?
[ 15.01.2024, 12:26: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Я правильно понимаю, у блоков в шаблоне программ нет функции настройки. редактирования? чтобы сам блок настроить
Непосредственно сам FBD-блок не редактируется. Вы можете настроить только значения входов/выходом и связи с другими блоками. Вы можете создать свой FBD-блок (Пользовательский), его содержимое Вы можете редактировать в Среде Разработки как Вам угодно.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Евгений Волынец: Шаблон программ, программа, есть аргументы и есть переменные, понять пытаюсь, переменные как присвоить к блоку задержке вход PT. Не за аргументы, переменные...
Данный вопрос обсуждался в телефонном разговоре. Дважды кликните по "черточке" входа и вводите значение или выбирайте аргумент.
quote: ... или надо с выхода блока задержки надо подвести к блоку " Пересылка значения (MOVE)" и с него уже через аргумент на Шаблон экрана, текст, значение...
Как работать с FBD-блоками, в том числе как их связывать друг с другом в рамках одного шаблона программы, описано в Справочной системе в разделе "Программирование алгоритмов - Редактирование FBD-программ".
quote: В ПЛК я так делал, чтобы ошибок не было, напрямую в ПЛК даёт ошибки. тут как? Тип значения в аргументах на добудет менять? или оставить реал?
Тип значений в аргументах естественно необходимо выставлять в соответствии с используемыми типами данных. Если работаете с дискретными значениями, то работаете с ними. Если с вещественными, то с ними. В противном случае Вы получите неправильный результат.
[ 15.01.2024, 12:25: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]