|
SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании |
|
Опции темы | Поиск в этой теме |
28.11.2019, 19:55 | #1 |
Senior Member
Регистрация: Apr 2012
Сообщения: 111
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Запись в свои же holding регистры (решено)
Коллеги, вопрос такой.
SMH может получать уставку из нескольких holding регистров (ну и со своей клавы тоже). Как можно красиво организовать этот алгоритм. Казалось бы, сравниваем текущую уставку со значением в holding регистре, при неравенстве приравниваем уставку к значению из регистра. Но если таких регистров несколько, и в них есть какие-то ранее записанные значения, то они (работающие по такому же алгоритму) увидят неравенство себя с уставкой и начнут пытаться записаться. Проблема решилась бы, если б имелась возможность менять значение holding регистра из FBD-программы, но нет такой возможности, как я понимаю. |
28.11.2019, 20:58 | #2 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Алгоритм записи...
|
28.11.2019, 23:32 | #3 | |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
|
|
28.11.2019, 23:47 | #4 |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 350
Благодарил(а): 0 раз(а)
Поблагодарили:
256 раз(а) в 252 сообщениях
|
Ответ: Алгоритм записи...
Нажимаете на значение рядом с переменной и меняете...
__________________ Если ничто другое не помогает, прочтите, наконец, инструкцию |
29.11.2019, 09:37 | #5 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 179
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
|
|
29.11.2019, 10:18 | #6 |
Senior Member
Регистрация: Apr 2012
Сообщения: 111
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Алгоритм записи...
Спасибо! Эхх, не хотел 3.30 устанавливать, тянул до последнего...
У вас красивое решение, и почти то, что нужно. А если представить не месте одной из переменных "ввод числа" holding регистр? Как в него перезаписать изменившееся значение? Вот сейчас я корячусь по модбасу, на панели стрелочками понажимали, новая уставка полетела в скаду, оттуда назад, чтобы обновить значение в регистре. Кроме этого есть еще две панели, с которых тоже уставку можно менять, да и из самой скады тоже... Проблема решилась бы, если б имелась возможность менять значение holding регистра из FBD-программы, но нет такой возможности, как я понимаю. |
29.11.2019, 11:14 | #7 | ||
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 350
Благодарил(а): 0 раз(а)
Поблагодарили:
256 раз(а) в 252 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
Цитата:
__________________ Если ничто другое не помогает, прочтите, наконец, инструкцию |
||
29.11.2019, 11:23 | #8 |
Senior Member
Регистрация: Apr 2012
Сообщения: 111
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Алгоритм записи...
Я вроде как режим отладки не упоминал.
|
29.11.2019, 11:46 | #9 |
Сотрудник Сегнетикс
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 350
Благодарил(а): 0 раз(а)
Поблагодарили:
256 раз(а) в 252 сообщениях
|
Ответ: Алгоритм записи...
__________________ Если ничто другое не помогает, прочтите, наконец, инструкцию |
29.11.2019, 12:11 | #10 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 188
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
29.11.2019, 12:22 | #11 |
Senior Member
Регистрация: Apr 2012
Сообщения: 111
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Алгоритм записи...
2G
Четверку на пробу неделю назад заказал. |
29.11.2019, 12:27 | #12 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 188
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Алгоритм записи...
В четвёрке создайте слейва на эзернете на адрес 127.0.0.1 и подключите свою же карту памяти. Будете сами в себя записывать.
Но, насколько я понял вашу задачу, вам это не нужно. Вы себе страхов напридумывали) __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 29.11.2019 в 12:40 |
Благодарность от: |
29.11.2019, 12:44 | #13 |
Senior Member
Регистрация: Apr 2012
Сообщения: 111
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Запись в свои же holding регистры
Увы, речь про двойку. Она уже на объекте, работает, но косяк с уставкой иногда вылезает. Сильно помог Лектус с его возможностью копирования переменных без затаскивания их в скаду, проблема только с периодом опроса.
А на четверку другие планы, тоже вопросов тьма будет... |
29.11.2019, 14:53 | #14 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 179
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
Последний раз редактировалось Arsie, 19.04.2024 в 16:37 Причина: вложения погибли |
|
29.11.2019, 15:21 | #15 | |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
|
|
29.11.2019, 15:22 | #16 |
Senior Member
Регистрация: Apr 2012
Сообщения: 111
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Алгоритм записи...
Именно "прописать", но в холдинг-регистр это возможно сделать только по сети. Мог бы прибор опрашивать раз в минуту (или реже) для архивчика в скада, сейчас приходится раз в пять сек., постоянно смотреть, не сменилась ли уставка. Не проблема, конечно, но некрасиво.
|
29.11.2019, 15:45 | #17 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 179
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
контроллер мастер же? или мастер тот откуда должна прилететь уставка? если второе - то все и так будет работать. регистр изменился, запись прошла. если первое - то без циклического опроса никак не получится. |
|
29.11.2019, 16:12 | #18 |
Senior Member
Регистрация: Apr 2012
Сообщения: 111
Благодарил(а): 2 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Запись в свои же holding регистры
Контроллер не мастер. Но "все и так" работать не будет. Регистр изменился, запись прошла, потом с клавы контроллера вводим другое значение, принимаем его за новую уставку, после этого контроллер видит несоответствие уставки и регистра и принимает это за следующее изменение.
Вот пока писал, мыслЯ закралась, после холдинг-регистра добавить промежуточный D-триггер, писать туда уставку при изменении с клавы или значение холдинг-регистра при его изменении. Сейчас покумекаю... Последний раз редактировалось VaBo, 29.11.2019 в 16:31 |
29.11.2019, 17:01 | #19 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Запись в свои же holding регистры
Лично я делаю так.
Последний раз редактировалось Arsie, 19.04.2024 в 16:38 Причина: вложения погибли |
29.11.2019, 17:06 | #20 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Запись в свои же holding регистры
Но будет весьма любезно со стороны сегнетикс всё же сделать возможность записи в холдинг регистры напрямую из ФБД для всех контроллеров, а не заставлять городить вокруг макросы с обратными связями.
|
29.11.2019, 17:13 | #21 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 188
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Алгоритм записи...
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
29.11.2019, 21:47 | #22 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 179
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Запись в свои же holding регистры
Цитата:
а как еще? |
|
29.11.2019, 23:24 | #23 | |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Запись в свои же holding регистры
Цитата:
input - чтобы вывести значение уставки наружу; holding - чтобы ввести новое значение уставки снаружи. Эта особенность требует от мастера (скады, панели управления, другие контроллеры): 1) "синхронизировать" свои читающие и пишущие тэги, точки ввода-вывода,; 2) дополнительный расход тэгов, т.к. их надо два на одну уставку. Первое требование неудобно с той точки зрения, что усложняет разработку приложения. Не все системы диспетчеризации позволяют удобно привязать к одному элементу интерфейса (ввод и отображение уставки) два тэга, один из которых читает, а другой пишет. Приходится изощрятся, увеличивается время разработки. Второе требование неудобно с той точки зрения, что цена почти любого ОРС-сервера или скады зависит от количества точек ввода-вывода. Как у многих конкурентов - контроллер сам внутри себя "синхронизирует" уставку в памяти и holding регистр или производится привязка модбас регистра к ячейке памяти. ("контроллер сам" - имеется ввиду, что программист контроллера предусмотрел такую взаимосвязь) Арсений предлагает решение: "В четвёрке создайте слейва на эзернете на адрес 127.0.0.1 и подключите свою же карту памяти. Будете сами в себя записывать." Однако, а) оно работоспособно только для линуксовых контроллерах; б) оно требует от программиста контроллера усложнять программу, т.к. просто писать "в себя" не вариант (что происходит, надо разбирать отдельно). Нормальным решением для лично меня был бы элемент holding регистра, который при установке в FBD имел два входа и один выход. Вход 1 - значение для записи в holding регистр из программы, запись при изменении значения; Вход 2 - принудительная запись значения на Входе 1 в holding регистр; Выход - значение holding регистра. По каким-то причинам такой элемент не был предусмотрен с самого начала. Если поискать по форуму, то будут отсылки на опасность убить контроллер, на противоречие идеологии модбас и т.п. Таким образом, сейчас имеем: либо предусматривай в программе два регистра и в мастере два тэга с необходимостью их связать внутри программы мастера; либо (для линуксовых контроллеров) предусматривай "запись в себя". И всё это вместо того, чтобы в программе контроллере соединить двумя простыми связями уставку к одному holding регистру, и мастеру указать "нужное значение - здесь". P.S. VaBo еще зачем-то хочет использовать несколько holding регистров для одной уставки. Вот этого я не могу понять. |
|
29.11.2019, 23:32 | #24 |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 179
Благодарил(а): 242 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Запись в свои же holding регистры
и какие проблемы использовать два регистра? что на мой ламерский взгляд совершенно законно и правильно - оттуда дуй, отсюда ...
ладно было бы реально жесткое ограничение на их кол-во... и потом, на том же макросе можно делать точно такой же коммутатор и для входного регистра... но без передачи и синхронизации всех уставок я вообще не очень представляю как это все будет работать. как говорится, одно из трёх, либо - либо. |
30.11.2019, 00:30 | #25 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Запись в свои же holding регистры
Я описал трудности, возникающие при использовании двух регистров.
А задача записи уставки из разных источников к проблеме holding регистров имеет только то отношение, что возникла у VaBo примерно в одно время. |
02.12.2019, 17:53 | #26 |
Senior Member
Регистрация: Mar 2014
Адрес: Санкт-Петербург
Сообщения: 408
Благодарил(а): 1 раз(а)
Поблагодарили:
23 раз(а) в 23 сообщениях
|
Ответ: Запись в свои же holding регистры
Завелось вроде.
В настройках "Задание свойств Slave" нужно прописать сетевой адрес Модбас. Теперь другая проблема, в переменные Coils не могу записать единицу. Пробую через OPC сервер и через лоджик в режиме отладки. То запишется, то нет. Последний раз редактировалось Arsie, 19.04.2024 в 16:38 Причина: вложения погибли |
02.12.2019, 18:42 | #27 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 188
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Запись в свои же holding регистры
Цитата:
У вас запись в эти переменные происходит каждые 100 мсек, точно никто друг с другом не дерётся? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
03.12.2019, 09:11 | #28 |
Senior Member
Регистрация: Mar 2014
Адрес: Санкт-Петербург
Сообщения: 408
Благодарил(а): 1 раз(а)
Поблагодарили:
23 раз(а) в 23 сообщениях
|
Ответ: Запись в свои же holding регистры
|
27.12.2023, 01:26 | #29 | |
Senior Member
Регистрация: Aug 2021
Сообщения: 160
Благодарил(а): 14 раз(а)
Поблагодарили:
11 раз(а) в 8 сообщениях
|
Ответ: Запись в свои же holding регистры
Цитата:
после какого-то времени (уже не я) вынужден поменять сетевой адрес контроллеру. Наверно любой логичный человек поменяет адрес только в разделе Slave. Надо-же к этому контроллеру подключиться, правильно? Как практика показывает РЭ никто-не читает. И тогда как узнать свой новый адрес? или после потери связи с самим собой перебирать адреса в программе, пока связь не восстановиться? |
|
27.12.2023, 10:36 | #30 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 188
Благодарил(а): 15 раз(а)
Поблагодарили:
666 раз(а) в 608 сообщениях
|
Ответ: Запись в свои же holding регистры
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|