Разработка PLC симулятора.

Стартовая страница Форумы Разработка и интеграция Разработка PLC симулятора.

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)
  • Автор
    Записи
  • #10867
    Taw
    Участник

    Как программно считать данные с датчиков? Допустим с цифровых или аналоговых датчиков считать с их портов данные (используя язык c# или с++) и представить на экране виндовс? Может кто подскажет где примеры программного кода для подобных задач или где порыться? Но не примеры по Ардуино.

    #10868
    manjey73
    Участник

    У меня один вопрос, а при чем тут RapidScada ?

    А если она при чем, то при помощи драйвера Коммуникатора, можно использовать C# и вызов функций библиотек C++ из C# кода драйвера.
    Работа с COM портами реализована в Коммуникаторе.

    Я например читаю данные датчиков DS18B20 на Raspberry через файлы. У меня почему то не получилось читать напрямую (пока не разбирался), по этому я при помощи crontab загоняю данные датчиков в файлы а драйвером уже вычитываю данные из файла.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем manjey73.
    #10870
    Taw
    Участник

    Вы же пользуетесь симуляторами Modbus, OPC. Симулятор PLC с ladder логикой для управления вместо реального контроллера. Для обучения программированию контроллеров в составе скада или может и без скады.

    Если аналоговый датчик, то нужен АЦП. Далее нужен порт. Допустим АЦП имеет Ethernet и подключен к ноутбуку. Определяется сеть и активные подключения. И работаем с socket. Нужны просто примеры, не хочется копаться в MSDN. Работа с Com портами реализована в коммуникаторе, но хотелось бы простой пример с одного датчика.

    #10871
    Taw
    Участник

    А как вы загоняете данные датчиков в файлы? Можете пояснить принцип? Я имею в виду программную реализацию. Для виндовс.

    #10872
    Taw
    Участник

    В принципе для начала было бы хорошо загнать данные с датчиков в файл. Но только для виндовс среды. Не люблю я демонов из линукс. Само по себе название вызывает отвращение от этой нечисти. Особенно если кто то хвастается что он постоянно работает с ними. И выполняет их команды или они его просьбу.

    #10873
    manjey73
    Участник

    Для Windows не знаю, на Raspberry я же написал, что делаю это через crontab. Используя встроенный драйвер 1Wire на Linux и командами cat /scada/ScadaComm/Log пишу туда файлы. Если есть что-то подобное для Windows то можно точно так же закидывать в файлы.

    crontab это файл расписания в среде Linux. Система сама его в определенное время опрашивает.
    Для Windows наверное нужно писать bat файл и запихивать его в расписание, чтобы в bat файле уже сохранялись данные с вашего АЦП в файлы.

    Могу выложить куда нибудь исходник драйвера для DS18B20. Мне просто этот вариант не нравится в принципе, поэтому я его не выкладывал никуда. А сделать иначе пока руки не доходят.

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

    Еще в теме про Формулы я делал Энергонезависимые переменные через файл. Так как на Raspberry все логи лучше располагать в темп директории, чтобы не убить флешку. Формулы работают в самой Scada. Там и запись и чтение.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем manjey73.
    #10875
    baur
    Участник

    тут есть один, в свое время реально помог, данные берет с PLCSIM (Siemens)

    • Ответ изменён 7 лет, 7 месяцев назад пользователем baur.
    #10881
    Mikhail
    Модератор

    Нужно определиться, по каким физическим интерфейсам подключаются датчики. Если ethernet, то корректно будет назвать такой датчик модулем ввода.

    #10885
    Taw
    Участник

    Контроллер состоит из модулей. Модуль для аналоговых сигналов, модуль для цифровых, коммуникационный модуль с Ethernet выходами (в который могут добавляться дополнительные платы Ethernet). Для датчиков тоже правильнее называть модуль ввода Ethernet.
    Для начала я сделаю симулятор контроллера по сокетам (передавая даннные в сторонние ПО). Может у кого есть пример для считывания данных с USB порта на с#?

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

    Может у кого есть пример для считывания данных с USB порта на с#?

    По моему опыту, Вы должны использовать DLL, реализующие API, от производителя микросхемы USB. И естественно установить нужные драйвера на компьютер.

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)
  • Для ответа в этой теме необходимо авторизоваться.