-
MasterSCADA+ПЛК63-L
Господа любители и профессионалы, помогите организовать передачу переменных из ПЛК. Нужно лишь отображать значения без всяких задач. В ОРС RS-485 нет такого устройства, пытаюсь по Mudbus ASCII. Создаю переменную, назначаю ее тип, адрес, добавляю в Scada, а значения нулевые. Пытался через ОРС RS-485 делать ПЛК как МДВВ и МАВ8 значения аналоговых и дискретных входов отображаются. Но мне нужны и аналоговые и дискретные сигналы, поэтому бьюсь с Mudbus ASCII. Направте в нужном направлении, это мой первый опыт работы с ПЛК
-
Я так понял ваша задача из ПЛК получить дискретные и аналоговые сигналы в SCADA. Если так то вам необходимо:
1. OPC-сервер для приборов c интерфейсом RS-485 и протоколом Modbus, или OPC сервер лектус Lectus (по мне лучше)
2. В контроллере создаете подмодуль Modbus slave (RTU), задаете адресс контролла и т.д., внем создаете переменные сначала 8 bits - что соответствует 8 дискретным сигналам, затем аналоговые.
3. В ОРС создаете узел/прибор не стандартный, задаете соответствующие параметры связи.В узле создаете переменные, дискретные - тип байт адресс начиная с 0 (данная переменая будет соответствовать созданной в контроллере 8bits), затем создаете аналоговые с типом, соответствующим типу в контроллере, если вы создали одну переменную 8bits то первая аналоговая будет с адрессом - 1,если не создавали то адресс - 0,т.е. на все типы переменных одно адрессное пространство регистров. адресса вводятся в шестнадцатиричном формате.
4. В скаде получаете ваши переменные,дискретные типа byte разкладуете в скаде на 8 отдельных сигналов. Проверенно все работает замечательно.
-
AKHolod, по 2-ому пункту можно конкретнее описать или где почитать?
-
AKHolod не совсем прав по второму пункту. Так прокатило если бы это был ПЛК100. В ПЛК63 для работы по Modbus Slave зарезервированы ряд адресов, к ним и нужно обращаться. С ними вам и нужно работать - загнать туда дискретные сигналы, аналоговые. Подробнее написано в документации PLC63_configuration
В MasterSCADA для распаковки используется модуль "Распаковка 32-битного значения", модуль "событие" или скрипт - на выбор.
-
Sniper007 у нас Master Scada Demo без ограничения по времени. Где взять выше описаные модули? может нужно использовать версию ограниченную по времени?
-
У меня Demo версия. Какую версию использовать - это ваше дело, и зависит от задачи. Если вам нужно ли отображать пару дискретных сигналов то хватит и версии на 32 точки.
Модуль надо взять во вкладке "Вычисления" - Распаковка аналогового 32 битного значения.
Но есть проблема. Согласно лицензии каждый выход ФБ имеющий связи - тоже считается как точка. Поэтому вам может не хватит 32 точек.
Но вы попробуйте, если хватит - замечательно. Если превысите это значение, то я вам скажу один фокус.
-
Sniper007, в Owen OPC для Modbus создаем переменную типа float(double float) адрес HEX 0018 и на выходе получается "0" хотя к аналоговому входу ПЛК 63 подключен датчик температуры и корректно отображается температура на самом ПЛК. Делаем распаковку 32 битного значения- 0. С дискретными такая же беда. Конечн о же тип данных там Byte и адрес соответсвующий. Может нужно как-то в плк оределять переменные которые хочу вытащить, не пойму. В чем может быть проблема непонятно.
-
Попробуйте просто Float, функция чтения - 03, запись - нет.
Можно еще попробовать обратится к адресу 4098 (HEX 1002).
Да и посмотрите в статусе переменной в MasterSCADA качество переменной. Есть там ошибка или нет
-
мы пытались считать информацию с области памяти параметров плк. или может нужно записывать информацию в область пользовательских параметров(опп) и затем считывать с этой области? если второй вариант правильнее, то как записать в опп измеренные значения. садресом 4098 тоже 0.
-
А качество переменной какое? MasterSCADA в свойствах переменной OPC - признак качества. Идет ли вообще обмен.
И попробуйте еще опросить адрес 19 (или 1003).
Чтобы скопировать переменную, нужно объявить ее разделе переменных и присвоить нужный адрес. Вот тут написано
http://www.owen.ru/forum/showthread....oto=nextoldest