- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
передача данных из VB в SCADA
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 06 сен 2012, 14:15
- Имя: Алексей Соколов
передача данных из VB в SCADA
Здравствуйте!
Помогите пожалуйста разобраться
В наличии имеется промышленный компьютер MS DOS, данные с которого передаются на PC c win xp
На компе с виндой программа управления на VB.
Необходимо с этого компа передавать некоторые данные (15-20 аналоговых величин, в формате с плавающей запятой) в Другой компьютер в InTouch
Я новичок и не понимаю как можно это реализовать
Помогите пожалуйста разобраться
В наличии имеется промышленный компьютер MS DOS, данные с которого передаются на PC c win xp
На компе с виндой программа управления на VB.
Необходимо с этого компа передавать некоторые данные (15-20 аналоговых величин, в формате с плавающей запятой) в Другой компьютер в InTouch
Я новичок и не понимаю как можно это реализовать
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
1. Какой физический интерфейс между промПК и PC?
2. Какой протокол обмена используется?
2. Какой протокол обмена используется?
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 06 сен 2012, 14:15
- Имя: Алексей Соколов
Re: передача данных из VB в SCADA
пром пк работает в связке с компом на котором программа на VB
это своего рода связка
таких связок 10
это с одной стороны
с другой стороны есть компьютер со скадой интач на который нужно получать данные от всех компов с программой на VB
промышленный комп не причем, так как все данные которые нам нужны есть в VB
Исходников на VB нет, но есть связь с разработчиком, которому надо объяснять через переводчика что мы хотим - в этом вся сложность...((
А хотим мы кинуть витую пару и через RS 485 (двухпроводку) по протоколу модбас получать переменные с компов на которых VB
На нашем компе стоит интач и модбас опс сервер лектус, который хочется просто настроить и работать
Как и что нужно сказать программеру чтобы он понял?
и как это вообще будет
я сам слабо понимаю в этих вопросах но быстро учусь
может кто подскажет?
это своего рода связка
таких связок 10
это с одной стороны
с другой стороны есть компьютер со скадой интач на который нужно получать данные от всех компов с программой на VB
промышленный комп не причем, так как все данные которые нам нужны есть в VB
Исходников на VB нет, но есть связь с разработчиком, которому надо объяснять через переводчика что мы хотим - в этом вся сложность...((
А хотим мы кинуть витую пару и через RS 485 (двухпроводку) по протоколу модбас получать переменные с компов на которых VB
На нашем компе стоит интач и модбас опс сервер лектус, который хочется просто настроить и работать
Как и что нужно сказать программеру чтобы он понял?
и как это вообще будет
я сам слабо понимаю в этих вопросах но быстро учусь
может кто подскажет?
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
Вам нужно попросить разработчика реализовать в VB-приложении функционал Modbus RTU slave, с размещением нужных вам данных в регистрах. Кроме того, понадобится свободный порт RS485 на компе с VB. Если существующий порт уже занят обменом с промПК, задействовать его не получится.
Если у компа с VB есть ethernet, можете попробовать использовать Modbus TCP (понадобится реализация Modbus TCP slave), однако для этого понадобится поддержка со стороны вашего OPC-сервера.
Если у компа с VB есть ethernet, можете попробовать использовать Modbus TCP (понадобится реализация Modbus TCP slave), однако для этого понадобится поддержка со стороны вашего OPC-сервера.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 06 сен 2012, 14:15
- Имя: Алексей Соколов
Re: передача данных из VB в SCADA
MuadDib благодарю!
насколько реально в VB-приложении реализовать функционал Modbus RTU slave, с размещением нужных данных в регистрах ?
это сложнее чем реализовать OPC сервер в VB приложении, и обращаться к нему через OPC LINK из InTouch?
Хочется понять как же будет правильнее
если реализовать Modbus RTU slave, то я так понимаю каждому слэйву нужно будет назначать адрес в VB программе, а если это будет OPC сервер, то достаточно будет прописать путь у серверу в моём клиенте
что же проще ?
насколько реально в VB-приложении реализовать функционал Modbus RTU slave, с размещением нужных данных в регистрах ?
это сложнее чем реализовать OPC сервер в VB приложении, и обращаться к нему через OPC LINK из InTouch?
Хочется понять как же будет правильнее
если реализовать Modbus RTU slave, то я так понимаю каждому слэйву нужно будет назначать адрес в VB программе, а если это будет OPC сервер, то достаточно будет прописать путь у серверу в моём клиенте
что же проще ?
-
- осмотрелся
- Сообщения: 101
- Зарегистрирован: 10 сен 2012, 08:56
- Имя: Евгений
- Страна: РФ
- город/регион: СПб
- Поблагодарили: 3 раза
Re: передача данных из VB в SCADA
Если у Вас существуют какие-то сложности в общении с программистом, может лучше у него сначала узнать, какой из способов передачи данных ему будет под силу реализовать и в какой срок? Думаю, перевести фразу "Нужно реализовать на базе вашей программы шлюз в Modbus RTU или OPC. Это реально?" не составит труда.
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
Вопрос сложный.werg писал(а):MuadDib благодарю!
насколько реально в VB-приложении реализовать функционал Modbus RTU slave, с размещением нужных данных в регистрах ?
это сложнее чем реализовать OPC сервер в VB приложении, и обращаться к нему через OPC LINK из InTouch?
Хочется понять как же будет правильнее
если реализовать Modbus RTU slave, то я так понимаю каждому слэйву нужно будет назначать адрес в VB программе, а если это будет OPC сервер, то достаточно будет прописать путь у серверу в моём клиенте
что же проще ?
Во-первых, VB бывают разные. VB6 (наиболее распространённый вариант) - это одно, а VB.NET - совсем другое. Какой VB используется, вы не сообщили.
Во-вторых, что реализовать проще, а что - сложнее, зависит от опыта программиста и от имеющихся в его распоряжении готовых решений, библиотек, компонентов и т.п. Так, VB6 - язык, предназначенный, в основном, для работы с готовыми компонентами (конкретнее, с COM-объектами, поддерживающими IDispatch-интерфейс). Если программист предложил вам вариант с OPC-сервером, значит у него есть какие-то наработки в данном направлении, и такой вариант следует всерьёз рассмотреть.
В случае, если наработок ни для Modbus Slave, ни для OPC-сервера нет, разработка OPC-сервера будет на порядок сложнее. В VB6 дело будет осложняться тем, что язык напрямую не поддерживает custom-интерфейсы, а функционирование OPC основано именно на таких интерфейсах. Реализовать OPC-сервер с использованием VB6 можно лишь применив некие библиотеки-обёртки (то есть, фактически, разработав на другом языке программирования некий специальный компонент OPC-сервера, управляемый через dispatch-обёртку). Лично мне такой готовый инструментарий встречать не приходилось.
Скажу больше, при отсутствии наработок даже Modbus Slave в VB6 будет реализовать непросто - слишком много ограничений у данного языка. Что уж тут говорить об OPC...
С точки зрения эксплуатации, работа с распределённой системой из нескольких OPC-серверов также крайне нежелательна. Намучаетесь потом с настройкой DCOM по самое не балуйся.
Резюмируя вышесказанное, рациональнее всего для вас будет затребовать Modbus Slave (RTU или TCP - по обстоятельствам). Если разработчик сам предложит вам вариант с OPC, имеет смысл такое решение рассмотреть, но с учетом того, как потом это всё вам поддерживать. Повторюсь, распределённая система из OPC-серверов - это что-то с чем-то... Даже сама OPC foundation в новом варианте OPC-стандарта (OPC UA) полностью ушла от использования COM/DCOM, вот только продуктов поддерживающих UA я пока не встречал :?
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Не вижу смысла в данном случае в Modbus RTU, лучше уж Modbus TCP или ОРС. Примеров для VB в инете хватает, когда-то сам писал облегченные варианты.MuadDib писал(а): Резюмируя вышесказанное, рациональнее всего для вас будет затребовать Modbus Slave (RTU или TCP - по обстоятельствам). Если разработчик сам предложит вам вариант с OPC, имеет смысл такое решение рассмотреть, но с учетом того, как потом это всё вам поддерживать. Повторюсь, распределённая система из OPC-серверов - это что-то с чем-то... Даже сама OPC foundation в новом варианте OPC-стандарта (OPC UA) полностью ушла от использования COM/DCOM, вот только продуктов поддерживающих UA я пока не встречал :?
Для Modbus TCP Client на VB6 - https://sites.google.com/site/fieldbusb ... modbus-tcp
Для OPC Client на VB6 - https://sites.google.com/site/fieldbusb ... ologii/opc, (рпример 31.4), правда тут комменты на украинском, если будет интересно, комментарии переведу
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
OPC-клиент на VB в поставленной задаче ничем не поможет. OPC-сервер - совсем другая тема.san писал(а): Для OPC Client на VB6 - https://sites.google.com/site/fieldbusb ... ologii/opc, (рпример 31.4), правда тут комменты на украинском, если будет интересно, комментарии переведу
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Вы хотитпе сказать, что InTouch не поддерживает интерфейс OPCServer? Сомневаюсь, так как это одна из самых дорогих и мощных СКАД. А ОРС клиента реализовать проще, чем ОРС серевера. То же самое касатеся и Modbus.
Предлагаю топикстартера посмотреть также в стороно уобмена по SQL/ODBC - возможно реализовать это будет ещё проще. Правда надо узнать как это в InTouch. Вобще, надо бы начать с того что InTouch поддерживает и какие дрова для этого надо покупать. С этой скадой не работал, по этому не в курсах.
Предлагаю топикстартера посмотреть также в стороно уобмена по SQL/ODBC - возможно реализовать это будет ещё проще. Правда надо узнать как это в InTouch. Вобще, надо бы начать с того что InTouch поддерживает и какие дрова для этого надо покупать. С этой скадой не работал, по этому не в курсах.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 06 сен 2012, 14:15
- Имя: Алексей Соколов
Re: передача данных из VB в SCADA
В Скадах как правило реализованы OPC клиенты
интач - не исключение
Данные надо забирать ИЗ VB а не наоборот
А предоставлять данные - это функция сервера
и клиент тут не поможет...
мне кажется MuadDib прав
интач - не исключение
Данные надо забирать ИЗ VB а не наоборот
А предоставлять данные - это функция сервера
и клиент тут не поможет...
мне кажется MuadDib прав
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Вот кстати отсюда http://old.intouch.ru/support/pub/InTouchUGRus9.5.pdf
Так что можно даже NetDDE, архаично конечно, но если это прямой путь, то почему бы и нет, реализовывается простоОбмен данными
Взаимодействие системы InTouch с другими приложениями Windows, серверами
Wonderware ввода/вывода и внешними серверами ввода/вывода осуществляется по
протоколам обмена данными Microsoft DDE (Dynamic Data Exchange), FastDDE,
NetDDE и Wonderware SuiteLink.
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 06 сен 2012, 14:15
- Имя: Алексей Соколов
Re: передача данных из VB в SCADA
В общем попробую объяснить китайцу, что надо реализовать MODBUS RTU или TCP слэйв в VB
добавить в VB программу окошечко для установки модбас адреса
и предоставить мне таблицу регистров модбас
то есть адрес каждой переменной
В своём OPC Сервере я создаю узелы с соответствующими адресами и опрашиваю переменные по по представленной мне таблице адресов регистров
Так вроде?
добавить в VB программу окошечко для установки модбас адреса
и предоставить мне таблицу регистров модбас
то есть адрес каждой переменной
В своём OPC Сервере я создаю узелы с соответствующими адресами и опрашиваю переменные по по представленной мне таблице адресов регистров
Так вроде?
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Это вопрос риторический. Для приложений уровня MES, SCADA - это как раз Сервер, и для этого эти же SCADA поддерживают ОРС Сервер. А в Вашем случае, кто кому передавать данные или кто у кого их будет забирать - это так принципиально? Нужно детально обсудить задачу. И это должны делать ваши программеры и ваши разработчики SCADA. Технологий может быть много: DDE, OPC, SQL/ODBC, ActiveX, Modbus TCP (или другие открытые), свой протокол (VB<->InTouch ActiveX)... и другие возможно тоже есть. Клиентская или серверная сторона будет в одном или другом конце - надо решать индивидуально для каждой технологии. Если проще реализовать клиентскую сторону в VB, и это не перечит всем условиям и не ухудшает надежность - то почему бы и нет!werg писал(а):В Скадах как правило реализованы OPC клиенты
интач - не исключение
Данные надо забирать ИЗ VB а не наоборот
А предоставлять данные - это функция сервера
и клиент тут не поможет...
мне кажется MuadDib прав
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Если уже идёте по этому пути, то нужно "китайцу" ещё объяснить какой запрос будет приходить при чтении FLOAT (так как у Modbus нет такой функции) и в какой очередности будут идти байты в этом самом FLOAT. Это надо уточнять у знатоков InTouch и их драйверов Modbus.werg писал(а):В общем попробую объяснить китайцу, что надо реализовать MODBUS RTU или TCP слэйв в VB
добавить в VB программу окошечко для установки модбас адреса
и предоставить мне таблицу регистров модбас
то есть адрес каждой переменной
В своём OPC Сервере я создаю узелы с соответствующими адресами и опрашиваю переменные по по представленной мне таблице адресов регистров
Так вроде?
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
Действительно, клиентам SCADA абсолютно поровну, как SCADA получает данные - как сервер или как клиент. И действительно, теоретически сравнительно просто реализовать на VB OPC-клиент, который может складывать данные в некий специальный OPC-сервер со стороны InTouch. Но у данного решения будут 2 недостатка, существенно усложняющих эксплуатацию:san писал(а): Это вопрос риторический. Для приложений уровня MES, SCADA - это как раз Сервер, и для этого эти же SCADA поддерживают ОРС Сервер. А в Вашем случае, кто кому передавать данные или кто у кого их будет забирать - это так принципиально? Нужно детально обсудить задачу. И это должны делать ваши программеры и ваши разработчики SCADA. Технологий может быть много: DDE, OPC, SQL/ODBC, ActiveX, Modbus TCP (или другие открытые), свой протокол (VB<->InTouch ActiveX)... и другие возможно тоже есть. Клиентская или серверная сторона будет в одном или другом конце - надо решать индивидуально для каждой технологии. Если проще реализовать клиентскую сторону в VB, и это не перечит всем условиям и не ухудшает надежность - то почему бы и нет!
1. Конфигурация VB-клиента будет зависеть от конфигурации серверного ПО.
2. Для _каждого_ из VB-клиентов потребуются отдельные конфигурации, поскольку каждая машина с VB должна будет складывать свои данные в "свои" и только в "свои" тэги.
Не будем упоминать, что подобная схема усложнит администрирование DCOM и что даже такая тривиальная задача, как контроль состояния связи с удалённой VB-машиной посредством OPC quality, станет при такой схеме взаимодействия узлов невозможной :)
В общем, такая архитектура годится разве что для лабораторного стенда (типа, запускается, и ладно) ну или для типичного случая, когда всё уже куплено, поставлено, запуститься надо "вчера", а тут кто-то вспоминает, что в распределённой системе узлы, заразы такие, должны взаимодействовать! :amazement: Поддерживать на плаву такое хозяйство я бы и врагу не пожелал.
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
Да, как-то так. TCP обычно предпочтительнее, но сначала лучше убедиться, что ваш OPC-сервер способен работать через Modbus TCP.werg писал(а):В общем попробую объяснить китайцу, что надо реализовать MODBUS RTU или TCP слэйв в VB
добавить в VB программу окошечко для установки модбас адреса
и предоставить мне таблицу регистров модбас
то есть адрес каждой переменной
В своём OPC Сервере я создаю узелы с соответствующими адресами и опрашиваю переменные по по представленной мне таблице адресов регистров
Так вроде?
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 06 сен 2012, 14:15
- Имя: Алексей Соколов
Re: передача данных из VB в SCADA
Согласен! Абсолютно!Действительно, клиентам SCADA абсолютно поровну, как SCADA получает данные - как сервер или как клиент. И действительно, теоретически сравнительно просто реализовать на VB OPC-клиент, который может складывать данные в некий специальный OPC-сервер со стороны InTouch. Но у данного решения будут 2 недостатка, существенно усложняющих эксплуатацию:
1. Конфигурация VB-клиента будет зависеть от конфигурации серверного ПО.
2. Для _каждого_ из VB-клиентов потребуются отдельные конфигурации, поскольку каждая машина с VB должна будет складывать свои данные в "свои" и только в "свои" тэги.
Я использую Lectus OPC MODBUS server
и TCP он поддерживает
что касается передачи переменных типа FLOAT, то в серевере предусмотрен прием старшим байтом вперед/назад и слова тоже можно вертеть)
Так что отображение переменных не есть проблема!
Кроме того я могу дать ссылочку на опс лектус китайцу, есть 30 дневная копия
Так что будет даже на чем попробовать связь.
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Это как? SCADA - одна.MuadDib писал(а): Действительно, клиентам SCADA абсолютно поровну, как SCADA получает данные - как сервер или как клиент. И действительно, теоретически сравнительно просто реализовать на VB OPC-клиент, который может складывать данные в некий специальный OPC-сервер со стороны InTouch. Но у данного решения будут 2 недостатка, существенно усложняющих эксплуатацию:
1. Конфигурация VB-клиента будет зависеть от конфигурации серверного ПО.
Однозначно так, но и если SCADA будет Клиент - будет тоже самое, для каждого ОРС Сервера будут свои теги.MuadDib писал(а): 2. Для _каждого_ из VB-клиентов потребуются отдельные конфигурации, поскольку каждая машина с VB должна будет складывать свои данные в "свои" и только в "свои" тэги.
Это я не понял. В случае OPC-сервер на SCADA - OPC Сервер будет один, а если наоборот - их будет 10 (и все самописные), и один клиент в SCADA InTouch. Естественно что система с одним OPC Server-ом с точки зрения DCOM проще настраивается. И кто вобще должен контролировать связь - SCADA или VB. Если SCADA, тогда MuadDib, Вы правы, она должна быть клиентом, а если VB - тогда наоборот.MuadDib писал(а): Не будем упоминать, что подобная схема усложнит администрирование DCOM и что даже такая тривиальная задача, как контроль состояния связи с удалённой VB-машиной посредством OPC quality, станет при такой схеме взаимодействия узлов невозможной :)
Вы не смотрите что "я худой и кашляю" :-) . Работаю не только со стендами, но и с реальными объектами. Я бы и врагу не пожелал писать OPC Server на VB, так как это без изврата НЕВОЗМОЖНО. Под извратом я имею ввиду писать dll на C, а потом его включать в код VB, или что-то подобное. А вот клиент написать можно, через OPC Automation интерфейс. Так что это путь заведомо неробочий. Другой вариант - найти (написать на C/C#...) промежуточный ОРС-Сервер, к какому будут обращаться оба клиента VB и InTouch, но это ещё более не надежное.MuadDib писал(а): В общем, такая архитектура годится разве что для лабораторного стенда (типа, запускается, и ладно) ну или для типичного случая, когда всё уже куплено, поставлено, запуститься надо "вчера", а тут кто-то вспоминает, что в распределённой системе узлы, заразы такие, должны взаимодействовать! :amazement: Поддерживать на плаву такое хозяйство я бы и врагу не пожелал.
Так что, Modbus/TCP всё таки наверное наиболее лучший вариант. А кто клиент и Сервер в этом варианте - сами выбирайте, если у InTouch дрова только клиентские - выбора уже нет, на VB надо реализовывать серверную сторону.
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
Очень странно, что на пустом месте возникает такой спор, но если хотите ответы на свои вопросы - пожалуйста.
Допустим, вы развернули OPC-сервер на стороне СКАДА, и VB-клиенты должны складывать данные в него. Соответственно, вы задаете на каждом клиенте OPC-тэги типа "ServerName.FromClient1.Data1". По какой-то причине пришлось поменять OPC-сервер "наверху" на другую версию, и строка названия сменилась. Или сменилось имя компьютера. Все, меняется конфигурация на 10 VB-клиентах - это при том, что внизу ничего не изменилось. Не говоря уже о том, что все вышеупомянутые пути нужно как-то вгонять в конфигурацию VB-клиента. В случае с исполнителем из Китая согласования могут вылиться в долгие искромётные диалоги в лучших традициях Равшана-Джумшута. "Насяльника, моя твоя АйПиСи тэга савсэм ни видит, да!"...san писал(а): Это как? SCADA - одна.
Во-первых, клиент ли SCADA, сервер ли, а отдельные тэги на каждый VB-компьютер всё равно будут: данные разные. Во-вторых, если на VB реализовать клиентскую сторону, у вас будет 10 разных конфигураций для компьютеров "нижнего" уровня, а если реализовать серверную, то всего одна конфигурация в 10 экземплярах. Есть разница?san писал(а): Однозначно так, но и если SCADA будет Клиент - будет тоже самое, для каждого ОРС Сервера будут свои теги.
Нет, не естественно. Настройка с клиентской стороны ничуть не проще, чем с серверной. И, как показывает практика, основные пляски с бубном бывают именно с OPC-клиентами. Во всяком случае, диагностировать проблему с клиентской стороны часто бывает намного сложнее. Почему так - не знаю. Может особенности нашего софта, может руки у меня кривые :( Но факт имеет место быть.san писал(а): Это я не понял. В случае OPC-сервер на SCADA - OPC Сервер будет один, а если наоборот - их будет 10 (и все самописные), и один клиент в SCADA InTouch. Естественно что система с одним OPC Server-ом с точки зрения DCOM проще настраивается.
Раз InTouch собирает данные с VB-машин, контроль связи со стороны SCADA должен быть однозначно.san писал(а): И кто вобще должен контролировать связь - SCADA или VB. Если SCADA, тогда MuadDib, Вы правы, она должна быть клиентом, а если VB - тогда наоборот.
Тут вот какая ситуация. На самом деле, VB6 прекрасно взаимодействует с native-кодом посредством механизмов Automation. Именно так работает пример в той статье на украинском языке, на которую вы ссылались. Не нужно "писать dll на C", вы просто создаёте на Си++ нужный набор COM-объектов и используете их в VB так, как считаете нужным. И "изврат" это не больший, чем использовать OPC Automation interface. Другое дело, что для OPC-клиента есть готовое Automation-решение (одно из таких решений, собственно, и описывает вышеупомянутая статья, есть и другие варианты клиентских OPC-обёрток), а для OPC-сервера, как я уже писал, готового компонента нет. Но если учесть, какие архитектурные проблемы за собой тянет решение с OPC-клиентом на стороне VB, то ещё не известно, где в итоге больший "изврат" получится.san писал(а): Вы не смотрите что "я худой и кашляю" :-) . Работаю не только со стендами, но и с реальными объектами. Я бы и врагу не пожелал писать OPC Server на VB, так как это без изврата НЕВОЗМОЖНО. Под извратом я имею ввиду писать dll на C, а потом его включать в код VB, или что-то подобное. А вот клиент написать можно, через OPC Automation интерфейс. Так что это путь заведомо неробочий. Другой вариант - найти (написать на C/C#...) промежуточный ОРС-Сервер, к какому будут обращаться оба клиента VB и InTouch, но это ещё более не надежное.
Полностью согласен. Спор какой-то беспредметный получается :Dsan писал(а): Так что, Modbus/TCP всё таки наверное наиболее лучший вариант.
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Ладно, не будем спорить, хотя практически ничем Вы меня не переубедили. Если кто-то пишет что-то на VB, сомневаюсь что он будет писать на C++. А статья, на которуя я сослался, на самом деле вырезка из книги... моей.
Я когда-то писал на VB маленькие программы и интересовался проблемой использования чистых COM-интерфейсов в VB. То что предлагали VB-шники на своих форумах - это встраивание Assemblera в код VB и использование недокументированых функций VB. Если можете привести код для ОРС-Server на VB - очень внимательно его изучу и возможно переосмыслю всю сложившуюся у меня в голове картину.
На самом деле, я так понял топикстартер хочет пойти по пути VB<->OPC Server Lectus > Modbus/TCP<->InTouch, если это так, то это как по мне самый худший из вариантов, в котором китайцу придется всё-таки реализовать ОРС-Клиента. Или чего-то я недопонял?
Я когда-то писал на VB маленькие программы и интересовался проблемой использования чистых COM-интерфейсов в VB. То что предлагали VB-шники на своих форумах - это встраивание Assemblera в код VB и использование недокументированых функций VB. Если можете привести код для ОРС-Server на VB - очень внимательно его изучу и возможно переосмыслю всю сложившуюся у меня в голове картину.
На самом деле, я так понял топикстартер хочет пойти по пути VB<->OPC Server Lectus > Modbus/TCP<->InTouch, если это так, то это как по мне самый худший из вариантов, в котором китайцу придется всё-таки реализовать ОРС-Клиента. Или чего-то я недопонял?
-
- частый гость
- Сообщения: 462
- Зарегистрирован: 31 июл 2010, 09:12
- Имя: Павел
- Страна: РФ
- Благодарил (а): 10 раз
- Поблагодарили: 17 раз
Re: передача данных из VB в SCADA
Нет, речь идёт о VB > Modbus TCP Slave Modbus-> Lectus OPC OPC-> InTouch. Просто топикстартер задумался над альтернативным вариантом: VB > локальный OPC Server OPC-> InTouch. Я высказал свои размышления о реализации OPC Server в рамках проекта VB, вы предложили вариант с OPC Client и пошло-поехало ;)san писал(а): На самом деле, я так понял топикстартер хочет пойти по пути VB<->OPC Server Lectus > Modbus/TCP<->InTouch, если это так, то это как по мне самый худший из вариантов, в котором китайцу придется всё-таки реализовать ОРС-Клиента. Или чего-то я недопонял?
Честно говоря, я не совсем понимаю, о чем вы. "Чистые" COM-интерфейсы в VB, встраивание ассемблера в Бейсик :amazement: Если вопрос интересен, предлагаю или создать отдельный топик или перенести беседу в личку, ибо оффтоп страшный. А то, чего доброго, придут модераторы с черенком от лопатыsan писал(а): Я когда-то писал на VB маленькие программы и интересовался проблемой использования чистых COM-интерфейсов в VB. То что предлагали VB-шники на своих форумах - это встраивание Assemblera в код VB и использование недокументированых функций VB. Если можете привести код для ОРС-Server на VB - очень внимательно его изучу и возможно переосмыслю всю сложившуюся у меня в голове картину.
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
А что InTouch не поддерживает Modbus/TCP?
По поводу СОМ, думаю это нужно на форму по VB. Щас пороюсь в ссылках, давно я туда не заглядывал.
По поводу СОМ, думаю это нужно на форму по VB. Щас пороюсь в ссылках, давно я туда не заглядывал.
-
- преподаватель
- Сообщения: 1357
- Зарегистрирован: 01 сен 2008, 18:32
- Имя: Пупена Александр
- Страна: Украина
- город/регион: Киев
- Поблагодарили: 6 раз
Re: передача данных из VB в SCADA
Нашёл, начал отсюда http://bbs.vbstreets.ru/viewtopic.php?f=1&t=8571 и попал сюда http://www.vbstreets.ru/VB/Articles/65974.aspx, дальше если продолжать, то наверное на том форуме.