|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
24.10.2006, 11:31 | #31 |
Новичок
Регистрация: Oct 2006
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
OPC сервер
Есть ли опыт работы с ОРС сервером? Тот который на сайте чего то не работает..... Есть ли какой нибуть реально рабочий ОРС сервер?
|
24.10.2006, 12:39 | #32 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: OPC сервер
Цитата:
Может поможет описание? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
25.10.2006, 12:01 | #33 |
Новичок
Регистрация: Oct 2006
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: OPC сервер
[QUOTE=Arsie]Тот, что на сайте вполне реально и долго работает на множестве объектов
Реально и долго это сколько? Учитывая демо-тридцатидневное ограничение. Он работает но компьютер вешает через полчаса работы. Может что то не так настроили? |
25.10.2006, 16:36 | #34 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: OPC сервер
[QUOTE=interprog]
Цитата:
Долго - как минимум полтора года непрерывно. Есть такие объекты. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
03.02.2007, 02:37 | #35 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: SMLogic
Пытаюсь подключить устройство с протоколом Modbus и считывать и изменять состояния его дискретных выходов и входов.
Возьмем для начала один дискретный выход. Для этого создаю карту памяти Slave для переменной типа boolean, с направлением R/W(out), периодом 100 и адресом 1, что приводит к созданию переменной для чтения/записи. Причем чтение происходит функцией 01, а записи 15 (при конвертировании карты памяти в конфигурационный файл для ОРС Lectus получаются именно эти функции). Согласно же спецификации ModBus функция 01 и 15 служат для чтения и соответственно записи статуса последовательности выходов. Это бы устроило, но так как в SMLogix сетевая переменная типа boolean, то и последовательность увидеть или записать не удается (при любой комбинации состояний выходов при чтении или записи переменная будет равна 1 или 0). Как быть в этом случае? Ведь явно задать функцию 05 для установки единичного выхода нет возможности, то же самое и для чтения. Не говорит ли это о какой-то неполноте реализации протокола ModBus? Может есть какое-то решение данной задачи? |
05.02.2007, 15:09 | #36 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: SMLogic
Цитата:
Функция 15 (force multiple coils) осуществляет последовательную запись нескольких битовых переменных - "койлов". Минимальная размерность последовательности - 1. Насколько я понимаю, это вам и нужно. "Последовательность" в данном случае подразумевает возможность (именно возможность, а не обязательность) объединения нескольких переменных в один запрос (один пакет данных) для более рационального использования пропускной способности канала связи. Для объединения переменных должны выполниться три условия: переменные должны быть одного типа, переменные должны принадлежать одному устройству, переменные должны размещаться в карте памяти подряд без разрывов в адресации (причём не важно, по возрастанию адресов или по убыванию). "Многобулевых" переменных не существует, если я правильно понял ваши слова "сетевая переменная типа boolean, то и последовательность увидеть или записать не удается (при любой комбинации состояний выходов при чтении или записи переменная будет равна 1 или 0)", есть только несколько расположенных подряд "обычных" переменных типа "boolean". Функций "одиночного чтения" в модбасе не существует ни для каких типов данных. Для всех функций чтения (01, 02, 03 и 04) верны все те предпосылки, описанные для функции 15. Прошу вас пояснить задачу, которую вам невозможно решить в нашей реализации modbus-rtu. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
07.02.2007, 19:54 | #37 |
Новичок
Регистрация: Feb 2006
Адрес: ул.Калибровая 8а, Запорожье, Украина, 69008
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Копирование журнала по Modbus
В своем проекте использую массивы Array для хранения сообщений журнала событий (1 сообщение журнала занимает 2 long'а, соответственно использую 2 макроса Array(long)).
Требуется передавать содержимое журнала (то есть массивов) на компьютер по Modbus. В данный момент размер каждого массива = 20 значений (для тестирования). Проблема в том, что не получается уменьшить общее время передачи этих данных менее 8 сек. А заказчик желает журнал на всю свободную память контроллера... Цикл работы контроллера 100 мс, скорость передачи 115 200. Похоже основное время жрет переключение адреса в макросе. Что можно придумать для ускорения? Как вариант - спец макрос ARRAY_Modbus например, в котором есть дополнительный вход для задания базового адреса массива в памяти контроллера, таким образом можно будет в проекте использовать несколько макросов для обращения к одним и тем же данным и соответственно можно будет сделать блочную передачу данных. то есть несколько переменных (десяток) за одно изменение адреса. |
08.02.2007, 10:39 | #38 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Копирование журнала по Modbus
Цитата:
Цитата:
Возможности прямого чтения eeprom из сети прорабатываются, но это дело не скорого времени. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
08.02.2007, 13:50 | #39 | ||
Новичок
Регистрация: Feb 2006
Адрес: ул.Калибровая 8а, Запорожье, Украина, 69008
Сообщения: 6
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Копирование журнала по Modbus
Цитата:
Если в журнале будет 1000 записей (меньше 8 кБайт данных) общее время передачи составит 400 с= 6,6 минут. При этом теоретический потолок канала 11 кБ/сек. Цитата:
|
||
13.02.2007, 12:05 | #40 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Копирование журнала по Modbus
Цитата:
1) заданный адрес переключается по фронту сигнала "net enable", что вызывает потери времени для обеспечения как минимум двух полных циклов связи с контроллером (здесь и далее: полный цикл связи - это время затраченное на передачу пакета, его обработку и приём ответного пакета. Затраты здесь примерно равны (цикл опроса мастера) + (цикл программы = 100 мсек) + (цикл опроса мастера)). 2) общие потери быстродействия за счёт обратных связей в программе, я насчитал как минимум секунду. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
15.02.2007, 13:09 | #41 |
Senior Member
Регистрация: Jul 2006
Сообщения: 176
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Копирование журнала по Modbus
Тема передачи архивных данных с контроллера на компьютер достаточно актуальна. Но, как я понимаю, предлагаемые на форуме варианты не расчитаны на работу с OPC HDA (Hystory Data Access), т.е. не поддерживают стандарт "бесшовного склеивания" данных в случае потери связи.
Смысл в том, чтобы пользуясь стандартными вещами типа SCADA, OPC-Server вести архив стандартными средствами SCADA по тем же авариям с указанием даты и времени ее возникновения даже если связь с контроллером происходит 1 в сутки. При вычитывании же журнала аварий и получении оттуда даты и времени, по-моему, таких вещей сделать нельзя. |
15.02.2007, 18:04 | #42 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Копирование журнала по Modbus
Цитата:
Вопрос перекачивания архивов нашими инженерами прорабатывается, весной, скорее всего, результаты будут, но пока что есть, то есть. Что касается SCADA и конкретно нашего контроллера, то для конструктора программ (SMConstructor) сейчас прорабатывается и конструктор для MasterSCADA, создающий в паре с проектом на SMLogix проект для MasterSCADA. Так вот, да, архив событий передаётся медленно, но при доступе к скаде на 5 минут раз в сутки времени для передачи архива всё же хватает. Опять же, табличка на экселе, заполняющая строки данными из журнала, делает это со скоростью 1 строка в секунду, это ограничено периодом работы экселя с DDE - 1 секунда. Сто строк нашего журнала принимаются примерно за 100 секунд. Не быстро, но и не настолько медленно, чтобы объявлять этот способ невозможным. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 15.02.2007 в 18:07 |
|
03.04.2007, 16:44 | #43 |
Новичок
Регистрация: Apr 2007
Сообщения: 20
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Чтение данных из контроллера
Извините если вопрос глупый! Контроллер на руках только 2-дня!
Есть ли возможность получать данные с SMH 2010 в компьютер при его непосредственной работе? Т.е. интересует возможность ведения журнала непосредственно на компьютере в реальном режиме. Если да то как и какими элементами это можно реализовать? Заранее благодарен за подробный ответ или ссылку! |
03.04.2007, 19:19 | #44 |
Новичок
Регистрация: Oct 2006
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Чтение данных из контроллера
|
04.04.2007, 10:18 | #45 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Чтение данных из контроллера
для ведения журнала OPC недостаточно, нужна еще SCADA. Вообще, вариантов реализации очень много, в общем случае, нужна прорамма опрашивающая контроллер по модбасу и ведущая журнал.
|
08.08.2007, 07:59 | #46 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Вот туп писали, что пробовали подключать SMH к Trace Mode. У меня возникла небольшая проблемка. При связь через OPC-сервер все превосходно. Но не получатеся связаться посредствам самого Trace Mode 6. Связь по протоколу ModbusTCP с установкой Gold получилась без проблем, а вот по RS485 через COM порт что-то не выходит. Предполагаю что дело в настройках COM-порта. Пробовал различные конфигурации COM-порта, но так ничего и не вышло. Может кто-нибудь подскажет, "в чем собака порылась"?
|
08.08.2007, 11:53 | #47 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
Цитата:
Скада-системы (ТМ6 не исключение) все работают через интерфейс OPC. OPC-сервер предоставляет этот интерфейс скаде, работая с контроллером уже по конкретному протоколу. Это сделано для того, чтобы скада-системы были универсальны и не зависели от контроллера конкретной модели и конкретного производителя. В ТМ6 для работы по некоторым протоколам уже есть "встроенные" серверы. Как показывает практика, эти серверы не безгрешны (как в настройке, так и в работе). Что касается именно моего мнения, то я считаю, что ТМ6 штука хоть и хорошая, но стоящая слишком уж много денег Есть варианты и в разы дешевле, отличающиеся лишь тем, что у них нет трёхмерной визуализации. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
08.08.2007, 12:23 | #48 | |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Цитата:
2. Также я в курсе что большинство скада работают через OPC-сервер, и также что есть более дешевые скада, как к примеру продвигаемая вами Master SCADA. 3. Вопрос не в этом. Вопрос в том, как правильно настроить COM-порт в Трасе Моде. Здась спросил потому, что думал что кто-нибдуь уже сталиквался с подобным. У нас уже один человек (кроме меня) пытался настроить обмен через встроенный в трейсмод инструмент обмена по MOdbus, у него ничего не вышло и сделали через OPC-сервер. Я для интереса тоже попытался но ничего не вышло. Получилось подключиться только по Modbus TCP. |
|
08.08.2007, 12:47 | #49 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Вспомнил, почему встал вопрос диспечтеризации без использования OPC-сервера. У нас был такой нехороший случай. Использовали в качестве OPC-сервера Lectus Modbus OPC и в качестве СКАДЫ - ТМ6. Сразу скажу, что объект находится в 600 км. от нас и лишний раз туда "путешествовать" нет ни желания ни времени. Так вот во время монтажа левых проводов порвали наш интрефейсный провод. Служба эксплуатации вместо того, чтобы звонить нам стала ковырять ОПС-сервер. Когда у них, естественно, ничего не вышло, они позвонили нам. Пока выяснили что дело в проводах, пока они нашли порыв, прошло много времени. После восстановления порыва оказалось что они так наковыряли ОПС-ник что они накасячили в функциях чтения и записи. Пока это выснили, опка отправили к ним конфигурацию прошло еще моного времени. Вот если бы у нас свзяь с контроллерами осуществлялась через встроенные инструментарии ТМ6, то они не смогли бы поковыряться в настройках. Таким образом мы надежно скрываем от пользователя OPC-сервер.
|
08.08.2007, 14:19 | #50 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
Цитата:
Если вы хотите, чтобы вам посоветовали, что ещё можно покрутить, то вам нужно, как минимум, написать, что вы УЖЕ сделали, чтобы добиться связи с контроллером. А то как-то нехорошо получается... __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
08.08.2007, 14:23 | #51 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
Хм... Может, защитить конфигурацию сервера паролем (лектус, например, позволяет это)?
Помогает ещё установка атрибута "Read only" у файла конфигурации сервера. Ещё можно запретить изменение/удаление файла, если файловая система NTFS. Но это уже пляски с бубном. Но цели своей они достигают __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
08.08.2007, 14:50 | #52 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Вот именно что все это пляски с бубном. Защитить конфигурацию "запихав" функции опс-сервера в ТМ - более "изящный" способ.
З.Ы. а в поддержку ТМ обязательно обращусь.... |
08.08.2007, 17:30 | #53 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
Как сказать, использование встроенной в серсер возможности защитить конфигурацию не тянет ни на бубен, ни на прыжки
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
08.08.2007, 19:52 | #54 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Ну тогда еще один аргумент. Надежность системы в случае связки ОПС+СКАДА состоит из надежности ОПС и надежности скады (вычисляется по форммуле аналогично сопротивлению при паралельном соединении). А в случае испольщования встроенных в скаду средств надежность зависит только от надежности скады.
|
08.08.2007, 20:07 | #55 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
а защитить конфигурацию опс паролем все-таки надо было.... видимо парнь, который делал на том объекте диспетчеризацию, не догадался этого сделать.
|
09.08.2007, 11:17 | #56 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
Цитата:
Я не защищаю ни лектус, ни инсат. Скажу больше: у меня самого много претензий к ним, но в их стабильность я вполне верю. И возможностей у них достаточно для применения нашей фирмой. Цитата:
Я не верю, что сервер пишет та же команда, что пишет ядро скады. Следовательно, надёжность сервера не может быть аналогична надёжности скады (как в лучшую, так и в худшую стороны). А если всё пишет пишет одна команда, то это уже минус, т.к. для неё разработка сервера непрофильная задача, да и с исправлением глюков задержки точно будут. Ps. Это мои личные мысли, я могу быть как прав, так и не прав в своих умозаключаниях. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
09.08.2007, 12:24 | #57 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Все верно. Мы оба можем быть правы а можем и ошибаться....
|
11.09.2007, 20:09 | #58 | |
Новичок
Регистрация: Oct 2006
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Диспетчеризация и modbus
Цитата:
и я за ОПС сервер.. То ко у меня вопрос - необходимо сохранять значения введенные с верхнего уровня в энерго независивой памяти SMH, не доганяю как сделать это просто и красиво как с пультовым вариантом исполнения, пока пришло на ум решение ввести два тега для одной переменной , тот который в энергонезависимой памяти после блока ЕЕПРОМ(сохраняется) и до него(не сохраняется) , при открытии страницы в СКАДА переписываем сохраненное значение в поле несохраненного оно не видимое, нажимаем редактировать сохраненное пропадает- несохраненное появляется для редактирования, редактируем - нажимаем сохранить передаем сигнал сохранения для блока ЕЕПРОМ, вобщем как то не полюдски , дело в том что в карте памяти эти значения доступны как читать - писать , а в лоджике только вход или выход , подскажите решение ...... |
|
12.09.2007, 11:36 | #59 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 170
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Диспетчеризация и modbus
В библиотеке меню версии 2 (можно найти в темах "библиотека макросов" или "запчасти к конструктору") есть макросы хранения, называемые "2way". У них есть дополнительный вход, чтобы принимать данные из сети. Таким образом запоминание ведётся и из меню и из верхнего уровня.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
19.09.2007, 13:11 | #60 |
Senior Member
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 056
Благодарил(а): 20 раз(а)
Поблагодарили:
22 раз(а) в 22 сообщениях
|
Ответ: Диспетчеризация и modbus
Чтобы использовать запись в еепром со скады необходимо просто каждый такт делать сравнение поступаемого значения с предыдущим. (я использовал для этих целей блок mux и блок cmp для срванения. Затем с выхода А!=В взял сигнал на разрешение запсиси для еепром и одновременно превел его в int и подал на вход мультиплекосора, на вход 0 которого подается значение из меню. Таким образом при изменении посылаемого со скады значения происходит автоматическая перезапись в еепром. (подозреваю что в макросе 2way происходит тоже самое). А для чтения/записи в скаду... вообще то переменная которая в лоджике являтеся входной, на самом деле она для чтения\записи... но вообще я сделал так... для записи уставки одна перменная а для чтения значения из еепром - другая.
З.Ы. Сделал скаду для работы с модбасом без опс сервера используя встроенные взможности ТМ6. Все прекрасно работает. З.З.Ы. Разговаривал со знакомыми программистами из нефтянки... все говорят что раз в скаде есть возможность считывать под модбасу без опс-сервера то лучше обойтись без него - мнеьше софта - меньше заморочек. З.З.З.Ы. ТМ6 единственная скада на территори бывшего СНГ имеющая сертификат iso9001... и вторая в мире. |