Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о Matrix

Вопросы о Matrix Работа и применение контроллеров Matrix.

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2020, 12:55   #1
devizdus
Member
 
Регистрация: Dec 2019
Адрес: Магнитогорск
Сообщения: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Запись в modbus переменные с периодом 0

Здравствуйте. После прочтения сообщения посмотрите приложенный gif, ибо можем изъясняться непонятно) Лучше один раз увидеть.

Проблема следующая. Два контроллера Matrix. Один из них выступает как шлюз между внешним миром (scada и hmi) и вторым контроллером. Переменные заходят на UI-блок с настройками на вход и выход соответственно. Дабы избежать записи нулевых значений из Holding register при перезагрузке контроллера-шлюза (или перезаливке программы) делаем период опроса переменных на запись нулевым и управляем записью сами (макросы прилагаю). Если переменная на запись не равна считанной переменной и была изменена - формируем команду на запись. И все превосходно работает с целочисленными переменными. А вот с вещественными косяк. Запись происходит только один раз (после перезагрузки контроллера). Все последующие изменения переменной не обрабатываются. При этом команда на запись формируется, выход rdy modbus-переменной сбрасывается и взводится, но переменная во втором контроллере не меняет своего значения.

Сбивает с толку то, что с int все работает изюмительно, а с real нет.

GIF с косяком:
https://gifyu.com/image/iiqz

Используемые макросы:
modbus_write_int.msl
modbus_write_real.msl

Связь между контроллерами по modbus rtu.

Конроллеры Matrix 1020-90
SMLogix 3.32.0145
Прошивки контроллеров обновлены из SmLogix 3.32.0145
Изображения
Тип файла: jpg fos.jpg (132.5 Кбайт, 52 просмотров)
devizdus вне форума   Ответить с цитированием
Старый 18.11.2020, 13:01   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Цитата:
Сообщение от devizdus Посмотреть сообщение
Лучше один раз увидеть.
Тонко подмечено! Проекты для Matrix где можно увидеть?


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 18.11.2020, 13:11   #3
devizdus
Member
 
Регистрация: Dec 2019
Адрес: Магнитогорск
Сообщения: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Прикладываю архив. ШУ1 - шлюз.

fos.rar
devizdus вне форума   Ответить с цитированием
Старый 18.11.2020, 14:33   #4
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 157
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Цитата:
Сообщение от devizdus Посмотреть сообщение
Здравствуйте. После прочтения сообщения посмотрите приложенный gif, ибо можем изъясняться непонятно) Лучше один раз увидеть.

Проблема следующая. Два контроллера Matrix. Один из них выступает как шлюз между внешним миром (scada и hmi) и вторым контроллером. Переменные заходят на UI-блок с настройками на вход и выход соответственно. Дабы избежать записи нулевых значений из Holding register при перезагрузке контроллера-шлюза (или перезаливке программы) делаем период опроса переменных на запись нулевым и управляем записью сами (макросы прилагаю). Если переменная на запись не равна считанной переменной и была изменена - формируем команду на запись. И все превосходно работает с целочисленными переменными. А вот с вещественными косяк. Запись происходит только один раз (после перезагрузки контроллера). Все последующие изменения переменной не обрабатываются. При этом команда на запись формируется, выход rdy modbus-переменной сбрасывается и взводится, но переменная во втором контроллере не меняет своего значения.

Сбивает с толку то, что с int все работает изюмительно, а с real нет.

GIF с косяком:
https://gifyu.com/image/iiqz

Используемые макросы:
Вложение 8671
Вложение 8672

Связь между контроллерами по modbus rtu.

Конроллеры Matrix 1020-90
SMLogix 3.32.0145
Прошивки контроллеров обновлены из SmLogix 3.32.0145
раз с интом все ок, то и пишите/читайте в два инта и собирайте-разбирайте из них real
модбасу всеравно что гонять по проводам.


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 18.11.2020, 14:55   #5
devizdus
Member
 
Регистрация: Dec 2019
Адрес: Магнитогорск
Сообщения: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Ну это костыль. Его мы уже соорудили, только не провели на объекте, в процессе. Но хотелось бы без костылей тоже иметь возможность работать. Ждем ответа где косяк - в нас или в ПО контроллера.
devizdus вне форума   Ответить с цитированием
Старый 18.11.2020, 16:19   #6
devizdus
Member
 
Регистрация: Dec 2019
Адрес: Магнитогорск
Сообщения: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Кстати костыль в нашем случае это в один int писать целую часть, во второй дробную и потом складывать. Точность при этом естественно теряется. Нам конечно не критично, не ракета. Но все таки... Вы что подразумевали под "разобрать" real в два int?) Сдвиги, разложения на биты и т.п. операции только с целочисленными типами есть. reg32_real_to_bits не нашли, но просим нас ткнуть в нашу безграмотность.
devizdus вне форума   Ответить с цитированием
Старый 18.11.2020, 16:26   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Цитата:
Сообщение от devizdus Посмотреть сообщение
Кстати костыль в нашем случае это в один int писать целую часть, во второй дробную и потом складывать. Точность при этом естественно теряется. Нам конечно не критично, не ракета. Но все таки... Вы что подразумевали под "разобрать" real в два int?) Сдвиги, разложения на биты и т.п. операции только с целочисленными типами есть. reg32_real_to_bits не нашли, но просим нас ткнуть в нашу безграмотность.
https://forum.segnetics.com/forumdisplay.php?f=54

https://forum.segnetics.com/showthread.php?t=461


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 18.11.2020, 16:44   #8
devizdus
Member
 
Регистрация: Dec 2019
Адрес: Магнитогорск
Сообщения: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Ух ты. До этой ветки еще не добрался. Благодарю.

Но на будущее спросим. Это будет единственный вариант или поправят? Или может мы не так что реализовали. Ждем. Заранее спасибо.
devizdus вне форума   Ответить с цитированием
Старый 18.11.2020, 16:45   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Цитата:
Сообщение от devizdus Посмотреть сообщение
Ух ты. До этой ветки еще не добрался. Благодарю.

Но на будущее спросим. Это будет единственный вариант или поправят? Или может мы не так что реализовали. Ждем. Заранее спасибо.
Когда дойдёт очередь, Илья проверит ваши программы. Проблем быть не должно, откуда они взялись и будет темой его исследования.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 18.11.2020, 17:25   #10
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 331
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Каким лоджиком пользуетесь? Контроллеры форматировали из последнего лоджика? ЩУ2 у меня не может загрузиться в контроллер.


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Старый 18.11.2020, 21:46   #11
devizdus
Member
 
Регистрация: Dec 2019
Адрес: Магнитогорск
Сообщения: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Конроллеры Matrix 1020-90
SMLogix 3.32.0145
Прошивки контроллеров обновлены из SmLogix 3.32.0145. Форматировались.

ШУ2 ошибка компиляции или не открывается даже? Сегодня весь день на объекте туда сюда ШУ2 грузили. Завтра попробую еще в другой контроллер.
devizdus вне форума   Ответить с цитированием
Старый 19.11.2020, 11:20   #12
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 331
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Запись в modbus переменные с периодом 0

Если что, сейчас доступен 149 лоджик. Можно проверить на нём.


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Старый 20.11.2020, 11:31   #13
devizdus
Member
 
Регистрация: Dec 2019
Адрес: Магнитогорск
Сообщения: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Запись в modbus переменные с периодом 0

До объекта пока не добрался. По удаленке с 3.32.149 перепрошиться пробовал - не помогло. А вот поменяли контроллеры местами - все работает. Вернули на место - повторяется косяк. Ну поменяли местами и пока оставили так. Как будет возможность с объекта заберем контроллер и отпишемся еще.
devizdus вне форума   Ответить с цитированием
Ответ


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

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



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


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