Работа с COM-портом

Просмотр 15 сообщений - с 1 по 15 (из 20 всего)
  • Автор
    Сообщения
  • #4692
    SysAT
    Участник

    Добрый день! Я раньше работал в WinCC, и для опроса COM-порта использовал майкрософтовскую библиотеку mscomm32. Но теперь предстоит работать в Windows 10, а в ней эта библиотека не работает, по крайней мере в WinCC. Потому задумался о переходе на Rapid Scada.
    Суть задачи. Имеется удалённый объект с ПЛК и GSM/GPRS модемом, с другой стороны комп с таким же модемом (либо с внешним IP) и скадой (модемы находятся в режиме «прозрачного» TCP/IP соединения). Нужно организовать диспетчерский пункт по GPRS каналу. С компа я отправляю запрос в COM-порт модема в виде нескольких символов вроде ‘GOW0134’. Объектов несколько, запрос отправляется на все сразу, ПЛК получая запрос определенного вида, отправляет ответ в COM-порт. Это занимает 3-5 сек. То есть надо со скады послать запрос, через некоторое время считать ответ из COM-порта и сохранить его в строковую переменную. Собственно вопрос — могу ли я сделать это средствами Rapid Scada?

    #4699
    Mikhail
    Модератор

    Добрый день!
    Несколько уточняющих вопросов:
    1. За счёт чего происходит отправка запроса сразу на несколько объектов? Вы имеете ввиду параллельный опрос нескольких объектов или все объекты каким-то образом «видят» друг-друга в одном соединении?
    2. Почему нужно сохранить ответ именно в виде строки? Обычно ПЛК выдают числовые значения, даже если используется текстовый протокол обмена, то полученные данные преобразуются в числа.

    #4700
    Mikhail
    Модератор

    Собственно вопрос — могу ли я сделать это средствами Rapid Scada?

    Т.к. протокол обмена нестандартный, то потребуется реализовать драйвер для Rapid SCADA, это библиотека DLL, написанная на .NET.
    Но сначала хотелось бы прояснить вопросы написанные выше.

    #4701
    SysAT
    Участник

    1. Модем находящийся возле компа является TCP-сервером, к нему постоянно подключены несколько клиентов — модемы на удалённых станциях. Чтобы из скады обратиться к определённой станции, посылаю запрос в виде её номера, ПЛК с той стороны получив свой номер отправляет ответ, и так по очереди все станции. Объекты друг друга не видят, только сервер.
    2. Не обязательно строку, просто в WinCC было тяжело скриптами разделять и преобразовывать полученный пакет, я хотел отсылать целую строку в плк возле компа (если таковой имеется) или симулятор, там разделять её по словам, преобразовывть и записывать в переменные с которыми уже и будет работать скада. А вообще было бы отлично всё это делать средствами скады, без лишних посредников.
    Про разработку драйверов читал у вас на сайте, попробую, других вариантов у меня не остаётся.

    #4704
    Mikhail
    Модератор

    Вариант подключения контроллеров — один из типичных.
    Нужно разработать драйвер, чтобы разбирать ответы и передавать данные дальше из Коммуникатора приложению SCADA-Сервер. Используйте код существующих драйверов в качестве примеров.

    #4705
    Mikhail
    Модератор

    На ПЛК на станциях нет возможности использовать протокол Modbus?

    #4707
    SysAT
    Участник

    На ПЛК на станциях нет возможности использовать протокол Modbus?

    Нет, модем со стороны ПЛК не подключается автоматически, только через режим АТ-команд. Изменить протокол на Модбас после соединения модема не позволяет функционал ПЛК. Модемы Cinterion BGS2T и ПЛК Omron CP1E. Буду пробовать через OPC опрашивать

    #4717
    Mikhail
    Модератор

    По задумке, можно реализовать канал связи для Коммуникатора, который обеспечивает соединение, отправляя нужные команды модему, а затем активируется опрос по Модбас. Правда, подключение каналов связи в виде DLL не реализовано в Коммуникаторе. Но это будет работать в том случае, если соединение инициирует скада, а не ПЛК.

    #4740
    SysAT
    Участник

    Решил вопрос с опросом COM-порта через Master OPC от ИнСАТ. На нем можно даже обойтись без модема теоретически, если у компа статический внешний IP. Я только не пойму как добавить ОРС в коммуникаторе — при выборе длл-ки в выпадающем списке нет ни одного ОРС.

    #4741
    Mikhail
    Модератор

    Каким образом OPC сервер позволяет решить проблему?
    По настройке Коммуникатора для связи с OPC посмотрите это видео.

    #4744
    SysAT
    Участник

    Каким образом OPC сервер позволяет решить проблему?

    ОРС сервер посылает в СОМ порт запрос из заданных символов и ожидает ответ от модема. При наличии статического IP его даже можно настроить как TCP сервер и подключаться с удалённых станций непосредственно к ОРС. Стандартный протокол этого сервера — модбас, но с помощью скриптов можно описать свой протокол.

    #4746
    Mikhail
    Модератор

    Можете прислать описание протокола работы с модемом? Т.е. что ему нужно отправить, чтобы затем работать по Модбас?

    #4747
    SysAT
    Участник

    При нажатии кнопки «Свойства КП» ОРС в коммуникаторе вываливается такая ошибка, в списке выбора ОРС пусто

    #4749
    SysAT
    Участник

    Можете прислать описание протокола работы с модемом? Т.е. что ему нужно отправить, чтобы затем работать по Модбас?

    Модемы находятся в режиме «прозрачного» TCP/IP соединения, модбас при передаче данных не могу ипользовать из-за особенностей модемов со стороны ПЛК и самих ПЛК. Со стороны компа просто шлю в COM-порт символ «01». Он разлетается на все удалённые модемы, подключенные к модему возле компа. С той стороны ПЛК также прослушивают СОМ-порты своих модемов, ожидая нужный символ («01″,»02» и т.д.), и получив, отпраляют данные. ОРС получив пакет данных, записывает их в переменные и опрашивает сл. устройство, посылая в COM-порт символ «02».
    Всех этих заморочек можно было избежать, если бы со стороны ПЛК стояли модемы с автоматическим подключением (модемы соединились — и работай по модбас как в обычной локальной сети). А так приходится с ПЛК сначала АТ-командами настраивать соединение, переключаться в прозрачный режим и потом уже работать напрямую с COM-портом модема.

    #4754
    Mikhail
    Модератор

    По ошибке OPC просьба завести отдельную тему в соответствующем разделе.

    Может быть, развивая Коммуникатор, стоит учесть подобные режимы работы. Но пока не ясно, насколько часто у пользователей возникает подобная необходимость.

    Т.е. OPC сервер позволяет при опросе каждого устройства дописать какой-то дополнительный пакет?

Просмотр 15 сообщений - с 1 по 15 (из 20 всего)
  • Вы должны авторизироваться для ответа в этой теме.