Просмотр полной версии : Подключение устройства по Modbus
fizhimik
23.01.2024, 13:12
Добрый день! Имеется регулятор расхода газа. Подключен к СПК 110 по RS485 ко второму порту. Проблема: В устройство не записывается значение установленного расхода, но при этом считывается значение текущего расхода.
При подключении регулятора для проверки к OPC серверу - все работает без проблем.
73052
73053
73054
73055
73056
Евгений Кислов
23.01.2024, 13:18
Добрый день! Имеется регулятор расхода газа. Подключен к СПК 110 по RS485 ко второму порту. Проблема: В устройство не записывается значение установленного расхода, но при этом считывается значение текущего расхода.
При подключении регулятора для проверки к OPC серверу - все работает без проблем.
73052
73053
73054
73055
73056
Добрый день.
Свяжитесь, пожалуйста, со мной через телеграм (в подписи) и обеспечьте доступ по AnyDesk.
fizhimik
23.01.2024, 13:23
Добрый день.
Свяжитесь, пожалуйста, со мной через телеграм (в подписи) и обеспечьте доступ по AnyDesk.
AnyDesk принципиален? Возможно использовать например RuDesktop? AnyDesk блокируется университетом и придется раздавать интернет с телефона.
Евгений Кислов
23.01.2024, 13:31
AnyDesk принципиален? Возможно использовать например RuDesktop? AnyDesk блокируется университетом и придется раздавать интернет с телефона.
Подойдет еще AeroAdmin.
fizhimik
23.01.2024, 14:08
Спасибо за консультацию! Теперь все работает. Про триггер даже и не подумали.
Андрей_ТМЗ
24.01.2024, 05:34
Спасибо за консультацию! Теперь все работает. Про триггер даже и не подумали.
Здравствуйте. Можно, пожалуйста подробнее описать, в чем была проблема?
kondor3000
24.01.2024, 09:55
Здравствуйте. Можно, пожалуйста подробнее описать, в чем была проблема?
Сделали запись по триггерной переменной типа BOOL, а переменную не добавили в соотнесение входов. Нас скрине видно, что там ничего нет.
andrey.elektrik
24.02.2025, 14:29
Здравствуйте. Не стал плодить новых тем, решил спросить здесь. Не судите строго, новичок . Нужной информации не нашёл.
Имею СПК-210 и ПР-103. В ПР есть регистр тип WORD , который преобразуется в битовую маску на запись бит. (16484 например).
Суть проблемы в следующем : каким образом можно включить/выключить определённый бит из этого регистра из визуализации СПК? При этом не записывая всё значение WORD, чтобы не изменялись остальные биты? Некоторые из них меняются в программе самого ПР. При использовании панели оператора СП300 всё просто и понятно 4Х16484 бит3.
Надеюсь понятно изложил суть.
МихаилГл
24.02.2025, 14:52
Word.0:= true
andrey.elektrik
24.02.2025, 15:08
Word.0:= true
Это я в программе СПК так могу вкючить этот бит. А как мне это записать в ПР , не изменяя значения остальных бит в Переменной word? Канал записи одного бита есть? Если я буду записывать всю переменную, тогда у меня все остальные биты будут =0
МихаилГл
24.02.2025, 15:47
Это я в программе СПК так могу вкючить этот бит. А как мне это записать в ПР , не изменяя значения остальных бит в Переменной word? Канал записи одного бита есть? Если я буду записывать всю переменную, тогда у меня все остальные биты будут =0
Это шутка такая или троллинг? Я ума не приложу...
Word.0:= true
Word.1:= false
Word.2:= ...
...
Word.15:= ...
Меняются только те биты, какие вы сами меняете, остальные в ворде не изменяются...
Евгений Кислов
24.02.2025, 15:57
Здравствуйте. Не стал плодить новых тем, решил спросить здесь. Не судите строго, новичок . Нужной информации не нашёл.
Имею СПК-210 и ПР-103. В ПР есть регистр тип WORD , который преобразуется в битовую маску на запись бит. (16484 например).
Суть проблемы в следующем : каким образом можно включить/выключить определённый бит из этого регистра из визуализации СПК? При этом не записывая всё значение WORD, чтобы не изменялись остальные биты? Некоторые из них меняются в программе самого ПР. При использовании панели оператора СП300 всё просто и понятно 4Х16484 бит3.
Надеюсь понятно изложил суть.
Добрый день.
Можно сделать так:
Объявить три отдельных переменных типа WORD (названия условны):
wRead - значение, циклически считываемое из регистра ПР
wWrite - значение, записываемое в регистр ПР
wVisu - переменная, записываемая в визуализации (как раз wVisu.0 и т.д.)
Формировать wWrite в коде следующим образом:
wWrite := wRead or wVisu;
Т.е. при записи в регистр ПР - запишутся все биты, которые там сейчас установлены + те, которые вы устанавливаете в визуализации.
andrey.elektrik
24.02.2025, 16:00
Извиняюсь. Это не троллинг, просто отсутствие опыта работы с CS. Может быть я не совсем корректно сформулировал вопрос. Для наглядности приложу скрины8216282163
andrey.elektrik
24.02.2025, 16:11
В конфигураторе на панель всё гораздо проще 82164
Как я понимаю, нужно сначала считать переменную, изменить в ней нужный бит и записать её обратно в ПР. Других вариантов нет?
Евгений Кислов
24.02.2025, 16:43
В конфигураторе на панель всё гораздо проще 82164
Как я понимаю, нужно сначала считать переменную, изменить в ней нужный бит и записать её обратно в ПР. Других вариантов нет?
Всегда остается вариант с доработкой проекта ПР и размещения бит, которые будет записывать СПК, в отдельном регистре.
МихаилГл
24.02.2025, 16:47
Просто панель механизм модбас обмена реализует по умолчанию, а тут надо немного пораскидать одним делом, но на самом деле не все так сложно. Один раз сделаете, потом все будет проще. Тем более сейчас в cs новой версии с 16 вроде уже чтение и запись объединили, в 14 версии этого не было, вот там я помучился с механизмом обмена данными СП315Р-ПЛК210-ИП320...
andrey.elektrik
24.02.2025, 17:04
Всегда остается вариант с доработкой проекта ПР и размещения бит, которые будет записывать СПК, в отдельном регистре.
В том то и дело, что на ПР103+СП310 (насосная станция) уже давно всё сделано другим специалистом и менять там ни чего не хочется. Моя задача привязать к этому тондему СПК с котельной для диспетчеризации и возможности удалённой настройки. Есть только проект на панель, откуда я и беру номера регистров ПР с нужными мне данными. Вот и приходится как то выкручиваться.
andrey.elektrik
24.02.2025, 17:14
Просто панель механизм модбас обмена реализует по умолчанию, а тут надо немного пораскидать одним делом, но на самом деле не все так сложно. Один раз сделаете, потом все будет проще. Тем более сейчас в cs новой версии с 16 вроде уже чтение и запись объединили, в 14 версии этого не было, вот там я помучился с механизмом обмена данными СП315Р-ПЛК210-ИП320...
Чем больше я работаю с CS, тем больше я ненавижу эту программу!!! Всё через одно место, всё нужно досканально ручками прописать! Для какой-то обычной кнопки нужно аж 3 переменные прописать. Чтобы меняла вид, цвет и какую переменную включать будет. Можно прописать, когда она будет невидима, а вот простое условие, когда она будет видима, не предусмотренно!
У меня стоит CS sp17, пробовал функцию 23 (чтение/запись), компилятор ругается. Может что-то не правильно делал.
Евгений Кислов
24.02.2025, 17:16
Чем больше я работаю с CS, тем больше я ненавижу эту программу!!! Всё через одно место, всё нужно досканально ручками прописать! Для какой-то обычной кнопки нужно аж 3 переменные прописать. Чтобы меняла вид, цвет и какую переменную включать будет. Можно прописать, когда она будет невидима, а вот простое условие, когда она будет видима, не предусмотренно!
У меня стоит CS sp17, пробовал функцию 23 (чтение/запись), компилятор ругается. Может что-то не правильно делал.
ПР все равно не поддерживает функцию 23.
Так что придется настраивать отдельно запрос чтения и запрос записи.
andrey.elektrik
24.02.2025, 17:36
Добрый день.
Можно сделать так:
Объявить три отдельных переменных типа WORD (названия условны):
wRead - значение, циклически считываемое из регистра ПР
wWrite - значение, записываемое в регистр ПР
wVisu - переменная, записываемая в визуализации (как раз wVisu.0 и т.д.)
Формировать wWrite в коде следующим образом:
wWrite := wRead or wVisu;
Т.е. при записи в регистр ПР - запишутся все биты, которые там сейчас установлены + те, которые вы устанавливаете в визуализации.
Евгений, а можно пример, как это сделать на LD или FBD ?
МихаилГл
24.02.2025, 17:41
Можно прописать, когда она будет невидима, а вот простое условие, когда она будет видима, не предусмотренно!
Пишите условие видимости, обводите скобками и впереди ставите NOT
andrey.elektrik
24.02.2025, 17:43
Пишите условие видимости, обводите скобками и впереди ставите NOT
Спасибо! Попробую
В том то и дело, что на ПР103+СП310.... Есть только проект на панель, откуда я и беру номера регистров ПР с нужными мне данными. Вот и приходится как то выкручиваться.
А из СП310 повлиять на биты ПР можно?
andrey.elektrik
24.02.2025, 18:06
А из СП310 повлиять на биты ПР можно?
Вообще без проблемм. См. пост выше https://owen.ru/forum/showthread.php?t=39015&p=458131&viewfull=1#post458131
Ну тогда несложный макрос (вообще не изменение а добавление) и можно сверху нужные биты ставить/валить и при этом только писать
andrey.elektrik
26.02.2025, 17:24
Ну тогда несложный макрос (вообще не изменение а добавление) и можно сверху нужные биты ставить/валить и при этом только писать
А можно какой нибудь пример , желательно на LD или FBD
kondor3000
26.02.2025, 17:36
А можно какой нибудь пример , желательно на LD или FBD
Какой нафиг LD ?
Пишите на ST, распаковка бит из маски бит, делается через точку b0:=Mask.0; b1:=Mask.1; b2:=Mask.2;
Упаковка в обратную сторону Mask.0:=b_0; Mask.1:=b_1; Mask.2:=b_2;
andrey.elektrik
26.02.2025, 17:43
Какой нафиг LD ?
Пишите на ST, упаковка бит в маску бит, делается через точку b0:=Mask.0; b1:=Mask.1; b3:=Mask.3;
Распаковка в обратную сторону.
LD привычней (больше 10 лет писал на нём программы на оборудование, правда с другими ПЛК). Правда в Кодесис такой LD ущербный, что жуть! ST только начинаю осваивать.
А можно какой нибудь пример , желательно на LD или FBD
Я про панель спрашивал. Там си. Это даже не ST, хотя задача - плевая даже для начинающего.
Макрос - для обработки пакетика из нескольких регистров от верхнего уровня. Этого более чем достаточно чтоб записать любой бит в любое место панели - case/switch только.
В принципе это "Вид Б" на яйца из поста #15
Доработка самой панели - глобальный регулярный макрос обрабатывающий пакетик. Все остальное в панели даже подозревать об этом не будет. Проект же есть - сами сказали. Много ль надо чтоб только присылать:
Регистр X: Сделай то-то
Регистр X+1:С битом/регистром таким-то
+ide какой-нить чтоб дубли убрать.
.. в Кодесис такой LD ущербный, что жуть! ST только начинаю осваивать.
LD у всех сам по себе ущербный для задач чуть сложнее чем просто эл.схема
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot