Просмотр полной версии : ПЛК-63 считывание переменных c помощью Modbus
Здравствуйте. Пытаюсь соединить ПЛК-63 с Lectus: необходимо прочитать значений переменных типа Byte и Real. Получается не вполне. На моем рабочем проекте ничего не получилось. Решил взять в качестве пробы проект из примера с диска, который идет в комплекте с ПЛК-63. Там есть как запись переменных в ПЛК, так и чтение. Переделал все переменные для чтения с ПЛК. И вот что получается: те переменные, которые являются физическими входами-выходами контроллера читаются без проблем, а те что задаются в конфигурации SubMenu читаются, но всегда со значением 0, хотя в контроллере значения этих переменных далеко не 0. Может я что делаю не так, просто никогда не работал с ПЛК-63, может где-то не вижу очевидных вещей. Подскажите, пожалуйста. Пример программы для ПЛК-63, конфигурацию Lectus, а также PrintScreen работы связки Codesys и Lectus, где все это безобразие видно прилагаю.
Все, понял, что я делал не так. Необходимо в этих параметрах поставить тип "Оперативный" - я так понял эти параметры для чтения, а "Конфигурационный" - для записи. Всем спасибо.
omelchuk
15.04.2015, 09:21
Уважаемые Гуру.
Не могу взять в толк, для чего(почему) в примере для входного значения создаётся дублирующая переменная, которая съедает место в области ввода/вывода и без того небольшой памяти ПЛК63-L?
Master modbus OPC и так без проблем всё читает и из основной области, и из области копии памяти.
Пожалуйста, объясните.
Все, понял, что я делал не так. Необходимо в этих параметрах поставить тип "Оперативный" - я так понял эти параметры для чтения, а "Конфигурационный" - для записи. Всем спасибо.
У меня и Оперативный и Конфигурационный читается. На самом деле различие не в функциях чтения/записи, а в том, что Конфигурационный параметр является retain, т.е. сохраняется при отключении питания.
omelchuk
16.04.2015, 11:55
Продолжу задавать вопросы. С надеждой на ответы...(пост 3)
При создании пользовательских переменных(float) в меню конфигурации, при их расположении без промежутков(82,84,86...), невозможно групповое считывание(РП ПЛК63, стр 81).
Варриант 1: располагать через 2 адреса(82,86,90...), чтобы Мастер ОРС считывал по одному. Может кто подскажет, как заставить его всегда считывать только одну переменную в 1 запрос?
Варриант 2: считывать копию памяти ввода/вывода. Вопрос - как узнать, где располагается область пользовательских параметров?
Надеюсь, сформулировал вопросы понятно.
Варриант 1 решён, читает поштучно, но все подряд.
omelchuk
16.04.2015, 16:39
Вопросы начали возникать чаще, по мере изучения "адресного пространства ModBus".
То, что указанно в руководстве по програмированию ПЛК63, касательно соответствия области адресов регистров ввода/вывода и их копии(РП ПЛК63, стр 103...) получаем полную абракадабру( в народе - чушь).
На практике у меня совсем не такая таблица получается: 102 > 4186, 106>4188 110>4190 и т.д.
Хотелось бы увидеть истинное расположение всего этого "пространства"! (Приложение А, стр 103...+ ошибок в РП ПЛК63/73 в п.7.5 хватает уже при первом прочтении, например регистр 4184- стр.82 конец области %I, а стр.103 начало %Q!!!)
Думаю, не я один такой...
Эксперименты, только эксперименты!
MODBUS тестер рулит.
В руководстве чушь. Но переписывать не будут. Достаточно глянуть на руководство.
omelchuk
16.04.2015, 16:49
Aso.
Согласен, что только эксперименты! Радует наличие времени на это!!!
MODBUS тестер - буду узнавать, что за зверь.
Полностью согласен.
Aso.
Согласен, что только эксперименты! Радует наличие времени на это!!!
Ловите проверенный рабочий пример в прикрепленном файле. SP - первая переменная из пользователевского меню.
Внимание! Для ПЛК-73 адрес не такой!
MODBUS тестер - буду узнавать, что за зверь.
http://agrostroy.ru/index.php?page=4
omelchuk
17.04.2015, 11:06
ASo.
Не разобрался с Вашим файлом. Чем кусать?
Эксперименты в полном разгаре, есть первые результаты...
Не могу взять в толк, для чего(почему) в примере для входного значения создаётся дублирующая переменная, которая съедает место в области ввода/вывода и без того небольшой памяти ПЛК63-L?
За мысль автора не скажу. А в общем случае - разделение физики и логики.
На пальцах. Есть Ai1(4-20мА) - физика. Есть PE1(бар) - логика.
Скаду не должно парить откуда и как получают данные - в конкретных регистрах лежит давление в барах. Если завтра в проекте привязали датчик к другому входу или поменялся его тип (напр. 0-20) то давление будет лежать в тех же регистрах и в тех же барах.
Варриант 1:
Варриант 2:
1. Имхо - групповое всегда где только возможно. Тут в прямую группировать низя, но автоген (стринг + указатель) позволит частично вырезать гланды (8 регистров за раз)
2. Нету (копии пользовательской). но см. п.1
omelchuk
17.04.2015, 12:58
Валенок
Мысль с мА и бар понял, согласен.
Копия параметров пользовательского SubMenu есть, нашёл! Ошибок тоже хватает в описании...
Чуть позже отпишусь. Сейчас в процессе...
omelchuk
17.04.2015, 17:35
Как и обещал, результаты эксперимента.
Может кому пригодится. ModBus-RTU и ПЛК63.
Надеюсь, картинка будет понятна.
17781
Именно так, но Вы еще не указали фиксированные адреса.
omelchuk
17.04.2015, 18:59
Именно так, но Вы еще не указали фиксированные адреса.
Фиксированные адреса в колонке с номером 2, они правильные, поэтому их не упоминал.
Групповое чтение данные адреса не поддерживают! Поэтому этот сыр-бор...
Почему не поддерживают? Я же читаю.
Смотрите проект. Открыть можно и нужно MasterOPC.
omelchuk
17.04.2015, 19:31
Почему не поддерживают? Я же читаю.
Смотрите проект. Открыть можно и нужно MasterOPC.
Завтра с утра обязательно попробую ещё раз (может и не один), но не знаю, что за расширение у Вашего файла. У меня последняя версия Мастер универсал ОРС на 32 тега.
Получается считывать основные адреса подряд/поштучно с включённой опцией "последний тег в запросе". Группой - только копию из 4ххх. Проверено по логам.
Я новичок в этом, но вроде с головой и логикой(мышления) дружу...
У меня последняя версия Мастер универсал ОРС на 32 тега.Так на порту ПКМ -> Импортировать устройство.
omelchuk
18.04.2015, 11:06
ASo
Получилось открыть, поменяв расширение на .snd
Но у Вас всё-равно групповое чтение области копии ввода/вывода!!!, а запись производится в основные, указанные при конфигурировании, ячейки.
Кстати, спасибо за эту очевидную мысль. Без неё бы не работал ввод значений. До этого момента я пока не добирался.
Личный вопрос - откуда у Вас информация по регистрам копии, где нашли, в каком месте???
Или, как и я, методом проб?
Искал МОДБАС тестером в районе указанного в руководстве адреса.
omelchuk
18.04.2015, 14:24
Понятно. Получается, я делал тоже самое, но с помощью ограниченных возможностей Мастер ОРС 32...
НО, как уже здесь писали, данные изменения(ошибки) ещё не скоро будут учтены в документации. И будут ли вообще...
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot