|
Песочница Удалённые с форума темы |
|
Опции темы | Поиск в этой теме |
09.10.2023, 21:08 | #1 |
Новичок
Регистрация: Sep 2020
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Проблема с синхронизацией данных при чтении и записи modbus (нет проблемы)
Есть переменная, которую я хочу редактировать с экрана и с modbus.
Я ознакомился с примерами из форума как это делается, т.е. я создаю переменную вход и переменную выход, подключаю на соответствующие входы/выходы блока экрана. Проверил работоспособность программы, на первый взгляд всё работает. Но представим пример. Я выставляю на контроллере кнопками значение 10. Всё выставляется, в OPC сервере я вижу изменения. Затем через OPC сервер я записываю в контроллер число 20, контроллер принимает изменения. Затем я на контроллере меняю значение скажем снова на 10 и изменения я вижу как на контроллере, так и в OPC. Но потом я решаю через OPC снова выставить значение 20 и у меня ничего не выходит. Т.е. в SMLogix явно есть проблема с тем, что если записать какое-то значение через OPC, затем поменять его на PLC, затем на OPC выставить прежнее значение уже не получится. Получается только если я выставляю другое (третье) значение и только потом записать заветное значение и это уже проблема. Но проблема усугубляется, если мне скажем нужно менять переменную типа bool. Так как первый описанный случай вероятен меньше, то с bool это прямо вообще проблема. |
10.10.2023, 02:29 | #2 | |||
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus
1.
Цитата:
Это значение подается на вход Меню настроек. Там значение перезаписывается в память, если на входе значение меняется. 2. Цитата:
Но в HR осталось значение 20. 3. Цитата:
Решение: Если у вас контроллер SMH4, Trim5 или Matrix, то поможет описанный мной или vol2008 способ из этой темы https://forum.segnetics.com/showthread.php?t=5872 (полистаете - найдете там примеры и описание). Если у вас контроллер Pixel, то придется на стороне ОРС (скады) синхронизировать значение HR со значением из IR. Но надо быть уверенным, что ОРС (скада) не станет при запуске писать в HR нулевые значения. P.S. Арсений, Илья, и кто там еще читает форум ТП, вы когда-нибудь инициируете внедрение каких-либо штатных методов для записи значений в HR из программы? |
|||
10.10.2023, 11:14 | #3 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 10.10.2023 в 11:58 |
|
10.10.2023, 11:56 | #4 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus (нет проблемы)
В меню нет типа bool. Эта проблема немного надумана.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
10.10.2023, 12:25 | #5 |
Новичок
Регистрация: Sep 2020
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus (нет проблемы)
Надуманных проблем нет.
В меню я использую тип Enum, где есть всего 2 значения (ручной/авто, выкл/вкл). Да это int, но в теле программы я преобразую в bool, использую как bool, в списке переменных это у меня discrete input и coil соответственно. Используя bool, я лишаю возможности вписать значение отличное от того, что должно входить в PLC, таким образом мне приходится меньше использовать блоков ограничений диапазона. Хорошо, что есть какое-то решение, буду пробовать разбираться, но реализация реально не удобная, возможно стоило бы доработать SMLogix, чтобы вообще не было проблем. |
10.10.2023, 12:43 | #6 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus (нет проблемы)
Цитата:
Цитата:
Проблемы подобного рода сидят в основном в голове. Каждый раз, когда на форум приходит человек, вещающий о проблемах, в итоге получается, что это ему либо не нужно, либо проблема надумана, либо он вообще выбран неправильный способ реализации своей задачи. Я по памяти помню только один или два случая за 18 лет, когда это реально стало проблемой, ставящей крест на реализации. Именно для этого у нас есть работа контроллера с самим собой. Это снимает вопросы по любым возможным и невозможным сценариям. Зато гораздо чаще наблюдалась иная картина: человек страдал он "невозможности", а при разборе оказывалось, что он вообще зря всё затеял из-за неустранимых противоречий в выбранным им алгоритме выполнения задачи. Не будь этой надуманной проблемы, человек с высокой вероятностью повредил бы то или иное оборудование. Добавлено через 14 минут ...поэтому я против внедрения доступа на запись к холдингам внутри FBD. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
10.10.2023, 14:04 | #7 |
Senior Member
Регистрация: May 2010
Адрес: Москва
Сообщения: 865
Благодарил(а): 4 раз(а)
Поблагодарили:
87 раз(а) в 68 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus (нет проблемы)
Потому что какой-то программист написал неправильную программу, которая может повредить оборудование?
Тогда вам надо было не ПЛК выпускать, а конфигурируемые контроллеры. |
10.10.2023, 14:14 | #8 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 795
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus (нет проблемы)
Где ПЛК? Пока выше ПР не увидел.
__________________ Не являюсь сотрудником Segnetics !!! |
10.10.2023, 20:25 | #9 | ||
Новичок
Регистрация: Sep 2020
Сообщения: 7
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Проблема с синхронизацией данных при чтении и записи modbus
Цитата:
Добавлено через 18 минут Цитата:
На сегодняшний день я на Zentec и Carel могу писать код примерно в 10 раз быстрее, только благодаря среде. Речь не идёт о том, что я не могу что-то реализовать на Segnetics, вопрос к тому, что зачем мне эта сложность в реализации, которая у других просто отсутсвтует. Вы знаете кто на сегодняшний день делает СКАДУ? вы уверены, что когда спустя год её начнут делать я вспомню что мне нужно сказать тем ребятам, что там есть особенность работы с портом? Вот в arOPC я не нашёл функцию обратной связи и что мне теперь делать? В итоге получается длинный пост гнева, а причина тому, Ваш подход к проблемам пользователя. Я имею большой опыт работы с другими ПЛК и сеносрными панелями, в общем освоил 9 различных сред. Эта среда максимально не похожа на другие. Тут любую тему откроешь, пользователи только и говорят о том, что не привычно то или иное действие. В ответ всегда найдётся Ваш ответ: "всё норм, это вы ленитесь реализовывать вашу задачу так как задумал производитель". Т.е. производителя вообще нельзя критиковать? А производитель мог бы уважать и ценить время программистов, которые выбрали Ваш продукт и не вставлять палки в колёса? Можно сделать реализацию тех или иных задач проще? Нет, это не для Вас, у Вас однозначно есть свой путь. Удачи. |
||
11.10.2023, 10:53 | #10 | |||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 183
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Цитата:
Цитата:
Это функция скады, а не OPC. Я ни разу этого в серверах не видел и не советовал вам смотреть в его настройки. Добавлено через 5 минут Цитата:
Если первое, то причины вашего гнева понятны. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|||