PDA

Просмотр полной версии : Помощь новичку с настройкой обмена по МОдбас



!!!topor
13.11.2019, 16:13
Доброго времени суток, уважаемые!
Рубрика "Вопросы от нуба"

Пытаюсь настроить управление ПЛК 100 через СПК110
СПК - мастер, ПЛК-100 раб

Вроде бы все по инструкции сделал и связь идет, однако отследить состояние выходов через СПК не получается. ПЛК100 настроил по обучающему видосу и мануалу, а СПК не понимаю.
Не могу понять самого принципа, как провести настройку в Codesys 3.5
Модбасс добавил соединения настроил, шина запущена

Мне нужно считывать и менять состояние входов ПЛК100,
для переменных типа BOOL ведь не требуется объединение создавать?

Люди добрые, помогите кто чем может)
Как в настройках модбас соотнесение каналов делать и какие переменные привязывать (и куда)?

melky
13.11.2019, 16:37
Вы не сможете менять состояние ВХОДОВ при запущенной программе в ПЛК насколько помню, и выходов вроде тоже.
Для этого надо писать соответствующую программу в ПЛК

Николай2
13.11.2019, 22:01
Зачем в качестве модуля ввода /вывода применять ПЛК? Можно применить М...110 серию модулей ввода/вывода и получить нужные сигналы.
Иначе в ПЛК, нужно немножко в Codesys2.3 написать немножко програмки. Без этого никак. Нужно два Codesys2.3 и 3.5. В 3.5 програмируем СПК, в 2.3 програмируем ПЛК.
Ну или для начала опишите кратко т.з.

Николай2
13.11.2019, 22:06
Побитно не получится получать информацию. Только побайтно, а затем вытягивать нужные биты.

!!!topor
14.11.2019, 08:28
Понятно,использование ПЛК100 обусловлено тем, что он халява))).
Тут такая идея возникла. Попробую написать самую простую програмку нажимаем кнопочку на СПК - на ПЛК100 стал активен выход 1,
на выход 2 пришло +24, на СПК110 загорелась красная лампочка. ОТ Вас же уважаемы господа, прошу наставить меня на путь истины).
Ща сброшу скрины

!!!topor
14.11.2019, 08:41
Настройки ПЛК100
Сама программка
45578
Конфигурация выходов и модбасс
45579

!!!topor
14.11.2019, 11:25
Вот написал простую программку для чтения состояния входов ПЛК100.
Оказывается не нужно никаких объединений, достаточно просто объявить переменную типа BOOL и поставить ее в канале напротив ответственного bit.
Привязываем к красной лампочки и вауля, когда in1=true - лампочка горит455834558445585

Теперь перехожу к следующему этапу - это включение выхода (активирование входа) ПЛК100 через кнопку на СПК

Александр Ч.
14.11.2019, 11:28
На выход 2 не может прийти +24. Видимо опечатка?

!!!topor
15.11.2019, 13:44
Да верно, опечатался. Тут у меня проблемы возникли с включением выхода ПЛК100 через кнопку на панели.
Вот настройки ПЛК100, Вроде выравнил регистры, добавил новый регистр с цифрой 1. Объявил переменную типа bool B1 записал ее в bit0

В программе плк сделал B1 входом и соединил ее в выходом out5
45651
В СПК создал новый канал для записи (chanel 3) со сдвигом 0001, выбрал тригер цикл.
45652

Создал переменную для кнопки (reset). Нажимаю, она меняется на true, но выход на ПЛК не меняется
45653

Что я сделал не так?

Николай2
15.11.2019, 23:07
на скринах не видно, как настроен RS-485 в обоих устройствах. ПЛК должен иметь адрес и он должен совпадать с адресом в СПК. Гугл дает такую подсказку: https://docplayer.ru/46554185-Spk-nastroyka-obmena-s-plk110-m02-rukovodstvo-dlya-nachinayushchih-polzovateley-versiya-1-0-data.html

Евгений Кислов
18.11.2019, 07:18
У вас по скрину видно, что Modbus Master эмулируется (он выделен курсивом) - то есть вы нажали на него правой кнопкой мыши и поставили галочку Эмуляция.
Вероятно, проблема в этом.

!!!topor
18.11.2019, 10:33
Спасибо, добрый человек!
Галочку снял, теперь пишет вообще "Шина не запущена", хотя состояние входов считывается.
Параметры модбаса перепроверил - везде совпадают.
Почему теперь пишет, что шина не запущена?

Евгений Кислов
18.11.2019, 11:02
Вы можете удаленное подключение по TeamViewer обеспечить?

!!!topor
18.11.2019, 11:58
Да. Вот параметры для подключения:
1 350 107 148
3082

Только в этом случае у меня не будет онлайн подключения к СПК

!!!topor
18.11.2019, 14:59
Спасибо за помощь, теперь я знаю как управлять состоянием выхода ПЛК100 через СПК110. Причина была в том, что был выбран опрос по тригеру, естественно без самой тригерной переменной. И в прошивке ПЛК100, из-за объявления переменной после VAR B1:BooL;, несмотря что по модбасу пришло true для B1. Убрал объявление переменной после VAR B1:BooL; и сразу пошла реакция))
Однако приходится слишком долго ждать, когда произойдет изменение состояние выхода по нажатию - секунд так 10.
В чем причина такого медленного обмена данными. Скорость 9600, таймаут 500мс.

Теперь следующий этап, это чтение данных из ПЛК100 и вывод их на экран СПК

!!!topor
27.11.2019, 09:34
Итак, господа.
Продолжаю учиться работать с RS485. Состоянием выходов ПЛК100 научился управлять через СПК110, теперь надо считать число из регистра ПЛК100

Настроил программу на ПЛК 100 Codesys 2.3
45826
Красным выделен регистр, значение которого нужно считывать.
Проверил работоспособность модбас соединения ПЛК100 с помощью преобразователя МОХА и программы моббас пул.
Считал значение регистра
45827
Затем выполнил настройку программы для СПК110 Codesys 3.5
Создали переменную y1 типа Word
Добавили канал для чтения с адресом 0х0003 длиной 1
Соотнесли этот канал с переменной.......и...ничего не получилось)))
45828
45829

Что я сделал неправильно?

!!!topor
27.11.2019, 10:17
я по многим документам делал. Настраивал как в примере - все работало, а при попытке настроить под свою задачу - не получается.
Мне админы помогли настроить чтение регистров с float, через массив, и все получилось, а считать из ПЛК100 почему то не выходит.
Посмотрел я Вашу ссылку, и вроде бы все совпадает (страница 35- 41)
Самое интересное, что управлять состоянием выходов получается, а цифру считать нет- хотя программа идентичная

Евгений Кислов
27.11.2019, 11:28
Добрый день.
По скриншотам крайне сложно давать какие-то комментарии.
Обеспечьте доступ по TeamViewer, пожалуйста.

!!!topor
27.11.2019, 11:52
id 1 350 107 148
pass 6766

СПК будет офлайн

Евгений Кислов
27.11.2019, 11:56
id 1 350 107 148
pass 6766

СПК будет офлайн

Обновите у себя версию TeamViewer, пожалуйста.

!!!topor
29.11.2019, 16:36
Вести с полей. Получилось считать содержимое регистра ПЛК100 и вывести его на экран СПК110, Правда при считывании какой то полтергейст происходит.
Я задал следующие регистры в ПЛК100
45867
Следующие канала в СПК
45868
Подключаю включаю модбас, и когда я замыкаю на первый вход ( рег 0 в плк 100) то почему то приходит True на chanel 2(bit 0) в СПК110 хотя его там отродясь быть не должно. Затем СПК все таки считает значение из рег 2 в плк 100 и отобразит его в chanel 2(Word) потом потеря связи 0, затем опять считает. Но если я опять замыкаю на первый вход ( рег 0 в плк 100) то приходит True на chanel 2(bit 0).
В чем причина то? Может я напитал с очередностью регистров? Вроде выравнил их