Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2017, 14:53   #1
Igor6567
Новичок
 
Регистрация: Sep 2017
Сообщения: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию подпрограммы в SMLogix (оказались не нужны)

Есть большая потребность использовать подпрограмму вызываемую или невызываемую по условию из FBD. .. Есть ли такая возможность в SMLogix...
Макрос не подходит поскольку выполняется в любом случае, насколько я понял?
Igor6567 вне форума   Ответить с цитированием
Старый 18.09.2017, 14:55   #2
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: подпрограммы в SMLogix

А что за алгоритм вы хотите описать в этой подпрограмме? Какое у неё предназначение?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 18.09.2017, 16:29   #3
Igor6567
Новичок
 
Регистрация: Sep 2017
Сообщения: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: подпрограммы в SMLogix

Цитата:
Сообщение от Gromov Посмотреть сообщение
А что за алгоритм вы хотите описать в этой подпрограмме? Какое у неё предназначение?
хотел писать выхода modbus модулей, у меня их штук 40 при смене режима работы оборудования. Можно было бы уменьшить цикл выполнения программы, чтобы не крутить эту процедуру постоянно, не занимать порт...
Igor6567 вне форума   Ответить с цитированием
Старый 18.09.2017, 16:36   #4
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: подпрограммы в SMLogix

Ваша задача:
Однократно писать данные Modbus при смене какой-то конфигурации из меню.

Я правильно это понял?
Какой контроллер используете?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 18.09.2017, 16:46   #5
Igor6567
Новичок
 
Регистрация: Sep 2017
Сообщения: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: подпрограммы в SMLogix

Цитата:
Сообщение от Gromov Посмотреть сообщение
Ваша задача:
Однократно писать данные Modbus при смене какой-то конфигурации из меню.

Я правильно это понял?
Какой контроллер используете?
Контроллер SMH2Gi. Из SMARTа передаю состояние выходов в FBD, оттуда передаю MODBUS-овским переменным. При этом SMART-овские выхода передают своё состояние напрямую MODBUS-овским переменным. Чтобы обнулить MODBUS-овские переменные через FBD(при выходе из активного экрана) я должен записать в SMART-овские выхода сначала единицу, а затем 0. для 40-ка выходов это по времени займёт больше, чем выполнение основной программы.
Igor6567 вне форума   Ответить с цитированием
Старый 18.09.2017, 16:58   #6
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: подпрограммы в SMLogix

Пожалуйста, разъясните дополнительно. Что значит "обнулить" и зачем это делать? Какого рода данные из смарта передаются в модбас? Это значения каких-то уставок?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 19.09.2017, 11:21   #7
Igor6567
Новичок
 
Регистрация: Sep 2017
Сообщения: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: подпрограммы в SMLogix

Цитата:
Сообщение от Gromov Посмотреть сообщение
Пожалуйста, разъясните дополнительно. Что значит "обнулить" и зачем это делать? Какого рода данные из смарта передаются в модбас? Это значения каких-то уставок?
С терминала контроллера из окна ручного режима управляю вручную исполнительными механизмами через модбусовские тэги с контроллера ОВЕН присваивая им значения через SMART тэги. При выходе из окна ручных команд и при смене режима работы оборудования на автоматический в программе SMLogix я должен обнулить SMART тэги, чтобы они в свою очередь обнулили модбусовские тэги ручных команд...
Для этого я в программе SMLogix забираю выходные сигналы со SMART тэгов и те, которые в 1, я пишу в соответствующий читающий SMART тэг сначала 1, а затем 0. Иначе никак, и так 40 экземпляров. Придумал макрос из трёх элементов, т.е. 120 блоков ушло на одну эту функцию...Может я что-то тупо не так делаю...
Igor6567 вне форума   Ответить с цитированием
Старый 19.09.2017, 11:41   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 084
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: подпрограммы в SMLogix

Цитата:
Сообщение от Igor6567 Посмотреть сообщение
С терминала контроллера из окна ручного режима управляю вручную исполнительными механизмами через модбусовские тэги с контроллера ОВЕН присваивая им значения через SMART тэги. При выходе из окна ручных команд и при смене режима работы оборудования на автоматический в программе SMLogix я должен обнулить SMART тэги, чтобы они в свою очередь обнулили модбусовские тэги ручных команд...
Для этого я в программе SMLogix забираю выходные сигналы со SMART тэгов и те, которые в 1, я пишу в соответствующий читающий SMART тэг сначала 1, а затем 0. Иначе никак, и так 40 экземпляров. Придумал макрос из трёх элементов, т.е. 120 блоков ушло на одну эту функцию...Может я что-то тупо не так делаю...
У любого экрана СМАрт есть сервисные сигналы сигнал "Экран активен", "Вход в экран" и "Выход из экрана". Используя их вы можете:

1) Поставить на выходных значениях SMArt мультиплексоры, которые при неактивности экрана будут передавать нули на переменные modbus. Это универсальный способ.

2) Использовать меню "настройки", в котором использовать "двунаправленные" уставки. При выходе из экрана давать сигнал на обнуление уставок.

Соотв. прилагаю обе картинки.
Изображения
Тип файла: png Безымянный.png (10.5 Кбайт, 102 просмотров)
Тип файла: png Безымянный1.png (44.0 Кбайт, 82 просмотров)


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 19.09.2017, 12:19   #9
Igor6567
Новичок
 
Регистрация: Sep 2017
Сообщения: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: подпрограммы в SMLogix

Цитата:
Сообщение от Arsie Посмотреть сообщение
У любого экрана СМАрт есть сервисные сигналы сигнал "Экран активен", "Вход в экран" и "Выход из экрана". Используя их вы можете:

1) Поставить на выходных значениях SMArt мультиплексоры, которые при неактивности экрана будут передавать нули на переменные modbus. Это универсальный способ.

2) Использовать меню "настройки", в котором использовать "двунаправленные" уставки. При выходе из экрана давать сигнал на обнуление уставок.

Соотв. прилагаю обе картинки.
Спасибо за подсказку, для меня подойдёт вариант2, поскольку при возврате в ручной режим контроллер должен писать в модбус нули. я не дошёл до вашего варианта и использовал отдельные смарт тэги, как на картинке. Обнуление получалось только после предварительной записи 1, а затем 0. В вашем варианте точно обнулятся выходные смарт-тэги без динамической перезаписи 0-1-0
Изображения
Тип файла: jpg var.JPG (15.5 Кбайт, 61 просмотров)
Igor6567 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 10:24.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024