Перейти к содержанию
    

SCADA, драйвер, порт, плата

Всем доброго времени суток. Я любитель, и хотел бы создать самую простенькую SCADA-программу. Подскажите с чего начать. Я знаком с основами цифровой и аналоговой электроники, умею программировать микроконтроллеры и конфигурировать ПЛИС. Могу создавать интерфейсы на Delphi, знаю основы ассемблеров. Но не занимался написанием драйверов. Пока представления не имею как организовать такой аппаратно-программный комплекс. То есть я хотел бы чтобы оператор с компьютера мог управлять простеньким оборудованием. В моем случае включать и выключать лазер, снимать некоторые показания, задавать некоторые параметры. Что для этого нужно ? Какую литературу порекомендуете ? Я так понимаю, что необходимо из написанной прикладной программы через USB управлять встроенной системой (платой), которая, в свою очередь, управляет оборудованием и снимает показания датчиков. Но как это делается что-то в литературе пока не нашел. Даже с терминологией по этому вопросу не знаком

И еще вопрос. Может быть целесообразно не писать самому интерфейсную программу, а использовать готовый "движок" SCADA ? Такие предлагаются различными производителями. Вот только не знаю - можно ли организовать с их помощью управление собственно созданным оборудованием ?

Нужны ли применительно к моему запросу приведенные по ссылкам ниже средства ?

 

Open Platform Communications

 

Remote terminal unit

Изменено пользователем Entomo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SCADA обычно ничем не управляет, на PC это делает SoftPLC. Ничего не пишите, поставьте бесплатные версии SCADA, например мастерскаду. Когда наиграитесь, поймете надо ли вам ее писать свою. Или нужна просто программка, которая будет

" через USB управлять встроенной системой (платой), которая, в свою очередь, управляет оборудованием и снимает показания датчиков."

Вот это сравнительно просто и доступно для одного человека.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 19.02.2020 в 04:11, Михась сказал:

SCADA обычно ничем не управляет, на PC это делает SoftPLC. Ничего не пишите, поставьте бесплатные версии SCADA, например мастерскаду. Когда наиграитесь, поймете надо ли вам ее писать свою. Или нужна просто программка, которая будет

" через USB управлять встроенной системой (платой), которая, в свою очередь, управляет оборудованием и снимает показания датчиков."...

 

Тогда, в моем дилетантском понимании, помимо собственно готовых SCADA или любых SCADA-подобных программ предоставляющих возможности "панели оператора", должны быть выпускаемые производителями уже готовые платы сопряжения с соответствующими разъемами и должны быть уже готовые к ним драйверы. То есть самый примитивный пример: на готовой плате есть разъем куда подключается светодиод Hello world, а программа "панель оператора" (SCADA-подобная программа) через предварительно установленный драйвер позволяет кликом мыши на элементе пользовательского интерфейса включать и выключать светодиод (или любое другое устройство). Или я заблуждаюсь ? Если я не заблуждаюсь то мой вопрос: какие производители выпускают такие платы и драйвера и какие виды таких плат продаются ? Если можно прошу конкретные модели применительно к соответствующим SCADA

Изменено пользователем Entomo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотря что Вы подразумеваете под SCADA. Если Вы не планируете продавать результат своей разработки пользователям,

то достаточно знания среды разработки для PC (Delphi, MS VisualStudio), а именно конструктора GUI + собственно языка программирования. 

Для работы с графикой, чтобы не запутаться, надо уметь хорошо-эффективно-правильно применять ООП. Оноже способствует реализации интерфейса 

с управляемым устройством. Использование "прямых" вызовов ОС API, без "супер-объектных" библиотек. Для простых интерфейсов управления можно даже 

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

Если хотите чтобы Вашей разработкой пользовались другие, в качестве инструмента - это тяжелый случай.

Первая задача в этом случае будет реализовать редактор интерфейса пользователя GUI, опять же на ООП и еще много чего другого.

По-сути - графический редактор. На нем пользователь должен сам, без программирования на любом языке, нарисовать технологическую схему (кнопки, индикаторы итд) и сопрячь ее с интерфейсом связи объекта управления. Исключительно путем настроек "всего готовго". 

"Все готовое" вам надо будет реализовать путем программирования :)

OpenSCADA

 

Многие производители контроллеров выпускают и панели оператора, работающие с различными интерфейсами и протоколами.

Покупая такую панель оператора, вы получаете в комплекте и среду настройки ее, где можно особо не заморачиваясь 

(вообще не заморачиваясь) нарисовать кнопки, лампочки, графики и еще бог-весть-что, если деньги есть на покупку.

К примеру можно купить графическую панель оператора с физ. интерфейсом RS485 (или RS232), имеющую в своей библиотеке

протоколов MODBUS RTU. Подключаете ее на интерфейс с вашей платой на каком-либо контроллере, и "мигаете" на нем "HelloWorld"

по modbur-rtu.

Эконом-вариант NEXTION и другие подобные.

Не тратьте время на то, что давно реализовано. Или исключительно в учебных целях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, Entomo said:

. . .  То есть самый примитивный пример: на готовой плате есть разъем куда подключается светодиод Hello world, а программа "панель оператора" (SCADA-подобная программа) через предварительно установленный драйвер позволяет кликом мыши на элементе пользовательского интерфейса включать и выключать светодиод (или любое другое устройство). . . . .

Есть такие реализации, то что Вам выше давали инф-ю, softPLC. Система представляет из себя PC (как правило, от фирмы поставщика софта автоматизации, например Siemens), с спец. версией ОС (опятьже, поставщика софта), с драйверами (в томже стиле), с интерфейсными платами коммуникации (в томже стиле), и, естественно, периферией (конечно же, или скорее всего). И по очень недемократичным ценам. Хотя я, возможно, отстал от жизни и цены стали демократичными.

SIMATIC S7-1500

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

42 минуты назад, k155la3 сказал:

Есть такие реализации, то что Вам выше давали инф-ю, softPLC. Система представляет из себя PC (как правило, от фирмы поставщика софта автоматизации, например Siemens), с спец. версией ОС (опятьже, поставщика софта), с драйверами (в томже стиле), с интерфейсными платами коммуникации (в томже стиле), и, естественно, периферией (конечно же, или скорее всего). И по очень недемократичным ценам. Хотя я, возможно, отстал от жизни и цены стали демократичными.

SIMATIC S7-1500

Большое спасибо. 

1 час назад, k155la3 сказал:

Многие производители контроллеров выпускают и панели оператора, работающие с различными интерфейсами и протоколами.

Покупая такую панель оператора, вы получаете в комплекте и среду настройки ее, где можно особо не заморачиваясь 

(вообще не заморачиваясь) нарисовать кнопки, лампочки, графики и еще бог-весть-что, если деньги есть на покупку.

К примеру можно купить графическую панель оператора с физ. интерфейсом RS485 (или RS232), имеющую в своей библиотеке

протоколов MODBUS RTU. Подключаете ее на интерфейс с вашей платой на каком-либо контроллере, и "мигаете" на нем "HelloWorld"

по modbur-rtu.

Эконом-вариант NEXTION и другие подобные.

Не тратьте время на то, что давно реализовано. Или исключительно в учебных целях.

Спасибо. Правильно ли я понял что драйвера в этом случае уже готовы - они идут в комплекте поставки от разработчика ?

Изменено пользователем Entomo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 minutes ago, Entomo said:

Спасибо. Правильно ли я понял что драйвера в этом случае уже готовы - они идут в комплекте поставки от разработчика ?

Это обычно проприетарный OPC сервер, который и реализует закрытый протокол обмена OPC-сервера и девайса. Такой OPC пишет обычно разработчик.

Если протокол открытый, то его может поставлять кто угодно, на модбус наверно десяток OPC серверов. 

Настоятельно советую начать с бесплатной мастерскады и их бесплатного OPC модбус протокола, если на борту вашего девайса есть RS-485. Если ваш вариант девайса вообще не имеет на борту микроконтроллера и ему требуются дисретные сигналы вы можете сами написать программу, преобразующую модбас в нужные дискретные сигналы. 

Но надо помнить что использование взрослых скад несет обременение. Бесплатные версии быстро заканчиваются по размеру и за все надо платить. Иногда очень дорого. 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Entomo said:

Спасибо. Правильно ли я понял что драйвера в этом случае уже готовы - они идут в комплекте поставки от разработчика ?

Если это физическая панель оператора (моноблок-панель с тачскрином и-или набором кнопок) то никаких "драйверов" к ней не требуется. Настраиваете  ее с помощю софта изготовителя панели, указываете лог. протокол (модбас итд, много их) и физ. интерфейс через который панель общается  периферийным(и) устройствами (промышленной сетю, вроде Profibus). Для сименса. За железо-панель - заплати. За софт для настройки - заплати. За поддержку многих протоколов - заплати. 

Для других производителей - очень по-разному, но менее жестоко, чем у сименса .

Nextion подключается (тот что у нас был) по RS232, те чтобы подключить к ней ваше устройство на любом микроконтроллере с USART достаточно преобразователя уровня. Протокол (описание-спецификация) выложены на сайте. Есть ли модбас - смотрите тамже. "Драйверов" (в ардуиновском понимании) для микроконтроллера не встречал.

Если Вам нужно решить задачу технически - достаточно PC+Delphi (PC+MSVStudio) + COM1 -----> USART+микроконтроллер.

Протокол обмена можете написать сами, поглядев на устройство MODBUS RTU, или взять библиотеку MODBUS RTU (есть в исходниках для С, для pas не знаю).

OPC Вам может понадобиться, на данном этапе, разве что если захотите что-то нагромоздить "такое", например, интерфейс между Excel и Вашим микроконтроллерным девайсом. 

Если у Вас задача разобраться с OPC - то модбас берите и экспериментируйте. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/18/2020 at 6:20 PM, Entomo said:

. . .  Пока представления не имею как организовать такой аппаратно-программный комплекс. То есть я хотел бы чтобы оператор с компьютера мог управлять простеньким оборудованием. В моем случае включать и выключать лазер, снимать некоторые показания, задавать некоторые параметры. Что для этого нужно ? Какую литературу порекомендуете ? Я так понимаю, что необходимо из написанной прикладной программы через USB управлять встроенной системой (платой), которая, в свою очередь, управляет оборудованием и снимает показания датчиков. . . . .

Можно взять "за основу" STM32F103, смотрите application notes. Софт для разработки Keil или IAR компиляторы С(++).

Там (на ST) есть примеры HID-устройства, реализованного на базе этого процессора (проект-исходник). Кажется это mouse была.

Интерфейс для обмена с PC - USB/HID.  "Отдельный" драйвер для вашего HID - устройства не нужен, тк он уже есть в Windows в качестве стандартного.

Работать со своим мк со стороны PC c HID-девайсом можно используя MSVStudio с подключением LibUSB библиотеки, или любой другой, где есть интерфейс к HID-устройствам.

Более простой вариант - RS232 + USART. Подключаете на USB любой готовый конвертер USB/COM (на базе FT232R, CP2102 итд). 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Всем спасибо. После прочтения рекомендаций вспомнился анекдот: 1 сентября, аудитория технического ВУЗа, первокурсники слушают лекцию по матанализу. С задней парты: "алло, это военкомат ? - я передумал"

Ну а если серьезно. Мне любопытно как организовали сопряжение с системой отображения информации и управления вот эти ребята:

 

https://www.idquantique.com/quantum-safe-security/products/cerberis3-qkd-system/

 

https://www.idquantique.com/quantum-safe-security/products/clavis300-quantum-cryptography-platform/

 

https://www.idquantique.com/quantum-safe-security/products/clavis3-qkd-platform-rd/

 

https://www.toshiba.eu/eu/Cambridge-Research-Laboratory/Quantum-Information/Quantum-Key-Distribution/Toshiba-QKD-system/

 

Изменено пользователем Entomo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/23/2020 at 3:08 PM, Entomo said:

"алло, это военкомат ? - я передумал" . . . 

военкомат - это для "слабых духом". Не увидел на Ваших ссылках систем отображения. Если она и есть, может быть реализована как страница (s)http. По образу и подобию маршрутизаторов итп. Попробуйте поработать с сетью, а именно UDP (для начала работы, собственно, даже и сеть не нужна. Можно ее сэмулировать на одном физ. PC), UDP - user datagramm protocol. Реализуйте два приложения, одно - клиент, второе - сервер. Если получится обмен данными, можете наращивать эту систему дальше, даже до SCADA. 

 

On 2/23/2020 at 3:08 PM, Entomo said:

 . . . . Ну а если серьезно. Мне любопытно как организовали сопряжение с системой отображения информации и управления вот эти ребята:  . . . 

ТС задал тему. Мы серьезны, "как никогда". 

Если не секрет (криптографический), какая сверхзадача исследований по указанным ссылкам ? 

 

 measurement-studio

Measurement Studio — расширение Microsoft Visual Studio, которое предоставляет инструменты .NET для создания приложений тестирования и измерения.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, k155la3 сказал:

...ТС задал тему. Мы серьезны, "как никогда". 

Если не секрет (криптографический), какая сверхзадача исследований по указанным ссылкам ?.. 

 

Я защитил кандидатскую по квантовой криптографии. Возможно буду работать по этой теме дальше. Я по образованию инженер, но специальность не электронная техника. Электронной техникой и  программированием встраиваемых систем, контроллеров и иже интересуюсь помимо основной работы.  

Изменено пользователем Entomo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цитата

Электронной техникой и  программированием встраиваемых систем, контроллеров и иже интересуюсь помимо основной работы. 

Если так, то времени на написание минимально-нормальной SCADA у вас не будет.  Её вообще в одиночку не напишешь.

Когда-то очень давно, я руководил разработкой SCADA и сам писал красивые элементы для экрана.  На SCADA + OPC уровень ушло лет пять с командой из десятка наверное лучших программистов.  {Не в тему, но большинство затем не особо утруждаясь свалили "отсюда".}   Программеры писали графический редактор, а я для него кнопочки, стрелочные приборчики и предлагаемые готовые экраны.  Немало ругался по поводу того, что заказчик ничего сложнее VB не освоит, но вышло еще хуже.  Однако разница труда  в 1 ден на VB и месяца на MSVC++ ощутилась своей шкурой.

 

Не знаю, насколько здесь меня будут пинать за следующее.  Возьмите старую Windows NT4+SP6, их же подшефную скаду, и железяку ввода-вывода через RS232.  Если это только себе, то подойдет.  Старая операционка сейчас будет работать настолько быстро, что можно говорить о мягком реальном времени.  У Вас же простенькое оборудование, не нужно вам жесткого реального времени и драйверов.  Тем более нажать на кнопку и включить лазер.

USB, по-моему, без жестокого кромсания Windows не даст реального времени.  Может вообще получиться задержка в 5 секунд.  То, чем я сейчас занимаюсь (аудио софт), "камня на камне не оставляет" даже в Mac OS.   Windows NT вообще USB не поддерживает, но прикрасно работает с аппаратными RS232.  Можно легко хоть один вывод дергать.  И это без драйверов.

Изменено пользователем tosunrise

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, tosunrise сказал:

Возьмите старую Windows NT4+SP6, их же подшефную скаду, и железяку ввода-вывода через RS232.  

Windows NT вообще USB не поддерживает, но прикрасно работает с аппаратными RS232.

Для этой связки комп нужно будет искать в музее или на свалке, если повезет. Простой интерфейс GUI пишется не сложно, особенно для простых задач, если есть опыт работы с линуксовыми системами, можно попробовать на Qt, хотя этот монстр мне не нравится...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 18.02.2020 в 19:20, Entomo сказал:

 Я так понимаю, что необходимо из написанной прикладной программы через USB управлять встроенной системой

Замечу только, что USB - это не промышленный интерфейс. Если он "отвалится", то либо вручную кабель передергивать надо, либо отключать сервис, а потом включать... Само оно никогда не восстановится и не сообщит об этом. В отличии от Ethernet... Да и расстояния у USB небольшие.

Посмотрите, сейчас достаточно стартовых наборов микроконтроллеров с Ethernet. К ним и софт прилагается. И из них можно сделать мост "Ethernet-CAN" или  "Ethernet-LIN"..

Ну а для "балды" - посмотрите DLP2232 на FT2232. Прямо от USB на 16 выводов, практически без софта. У FTDI на сайте есть примеры для дельфи и билдера. И когда-то покупал за 30 долл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...