54 / 54 / 2
Регистрация: 30.05.2014
Сообщений: 83

Библиотека для обмена данными с ПЛК Siemens S7-300/400

15.07.2014, 08:04. Показов 56081. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предлагаю следующую библиотеку для обмена с контроллерами siemens серии S7-200, 300, 400, 1200* для платформы NET.
  • Обмениваться можно переменными типа DB и меркерами*.
  • Данные для обмена объявляются в файлах формат txt, xlsx или xml.
  • Данные читаются и пишутся по именам заданным в этом файле.

* - версия 1.1


Пример:
  • Заполнение таблицы сигналов

  • Связь с ПЛК
    Code
    1
    2
    3
    4
    5
    6
    7
    8
    
      // создаем клиент
    PLCS7_NET.CL.Client cl = new PLCS7_NET.CL.Client();
     
    // иниц-ия данных      
    cl.Init(@".\tableSignal.xlsx", TypeInitFile.xlsx);
     
    // соединяемся с ПЛК
    int er =  cl.Connect(_ipAddr, _rack, _slot, _timeUpd);
  • 3. Чтение данных
    Code
    1
    2
    3
    4
    5
    6
    7
    
        bool err;
     
     int val1 =  cl.ReadInt16("DriveFlt", out err);
     
    int val2 =  cl.ReadByte("Press", out err);
     
    double val3 = cl.ReadReal("Flow", out err);
  • 4. Запись данных
    Code
    1
    
        cl.WriteInt32("Force", 34, out err);

Скачать (исходник и мануал прилагаются): PLCS7_NET_RUS_V1.0.rar


Изменения версии 1.1:
- добавлена возможность чтения/записи меркер области;
- добавлен контроллер S7-1200

Скачать (исходник и мануал прилагаются): PLCS7_NET_V1.1.rar


-----------------------------------------------------------------------------------------
12
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2014, 08:04
Ответы с готовыми решениями:

Libnodave. Библиотека для доступа к ПЛК Siemens серии S7
Для модераторов: По мотивам https://www.cyberforum.ru/post2368464.html набивка мануал-факами. Тему или оставить тут или прикрепить или в...

Загрузка программы из ПЛК Siemens серии S7-400
Добрый день! Возникла необходимость извлечь из контроллера Сименс S7-414 загруженную в него программу. Я подключаюсь к нему при помощи...

IP защита ПЛК Siemens Simatic 300
Здравствуйте, хочу узнать мнение опытных людей о том как контроллеры Siemens 300, 400 переносят пыль, в частности угольную. У нас на...

51
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
22.04.2016, 10:18
Студворк — интернет-сервис помощи студентам
Да компилировал, пробовал подключиться к контроллеру вернуло значение "val=0"( хотя должно быть 27.
0
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
22.04.2016, 10:21
я чуть позже попробую - отпишусь.
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
22.04.2016, 10:24
Спасибо большое! Жду результатов.
0
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
22.04.2016, 15:01
Единственное отличие - получал переменную типа Real. Все таки нужно перепроверить отсутствие флажка Optimized block access, чтобы была возможность работы с косвенной адресацией (при компиляции блока DB1 в таблице будет отображаться смещение (offset)).
Миниатюры
Библиотека для обмена данными с ПЛК Siemens S7-300/400   Библиотека для обмена данными с ПЛК Siemens S7-300/400   Библиотека для обмена данными с ПЛК Siemens S7-300/400  

0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
22.04.2016, 15:41
Спасибо большое за помощь! Это хорошо что код рабочий. Значит дело все таки в контроллере, а флажок при возможности попрошу что бы проверили стоит он или нет.

А можно я тебе скину примерчик написанный с помощью библиотеки LibNoDave, а ты запустишь у себя и проверишь будет он работать с 1200-м или нет?
0
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
22.04.2016, 15:42
скидывай, посмотрю
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
22.04.2016, 17:34
Во вложении проект. Напишешь получится или нет)
0
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
22.04.2016, 17:35
Вложение.
Вложения
Тип файла: zip ControllerReader.zip (285.6 Кб, 256 просмотров)
0
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
25.04.2016, 08:59
Все подключается и работает.
Миниатюры
Библиотека для обмена данными с ПЛК Siemens S7-300/400  
1
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
25.04.2016, 08:59
в программе поменял только тип получаемой переменной
1
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 12
25.04.2016, 09:21
Цитата Сообщение от Militar347 Посмотреть сообщение
Все подключается и работает.
Спасибо большое за проверку! На выходных попробовал подключиться к S7-300(удалось получить только его) - тоже все работает и первый, и второй пример.

"в программе поменял только тип получаемой переменной" - ну да, нужно было сменить на float, если у тебя в таблице контроллера real)
0
4 / 4 / 2
Регистрация: 20.06.2013
Сообщений: 30
28.07.2016, 07:28
Здравствуйте!!!
Никто не в курсе, почему если в файле TableSignal.xlsx указываешь больше шести перемеренных, функции возвращают не верные значения???
Заранее спасибо за ответ!!!
0
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
28.07.2016, 08:12
Скорее всего проблема с адресацией на контроллере
0
4 / 4 / 2
Регистрация: 20.06.2013
Сообщений: 30
28.07.2016, 18:24
Поясни, пожалуйста...
0
3 / 3 / 0
Регистрация: 05.08.2015
Сообщений: 13
29.07.2016, 15:40
Адреса в этом файле должны совпадать с адресацией переменных на контроллере(параметр offset)
1
91 / 29 / 6
Регистрация: 17.03.2016
Сообщений: 212
14.04.2017, 13:22
Подскажите пожалуйста смогу ли я этой библиотекой читать данные из контроллера Siemens Simotion?
0
 Аватар для quench
1 / 1 / 0
Регистрация: 17.06.2008
Сообщений: 39
13.12.2017, 10:18
Цитата Сообщение от Militar347 Посмотреть сообщение

А в какой средой разработки для PLC пользуетесь?
если можно, разъясните о среде в которой все это действо по обмену информацией "настраивается".
Вижу проекты PLCS, вижу экселевские таблицы и упоминания о библиотеках...
А так же упоминания о попытках настроить обмен без доступа к программам контролеров..
Хочется перечитав имеющиеся страницы понять о чем речь.
Пока что, как в анекдоте:"Папа а с кем ты сейчас разговаривал?"
о Step 5,5 и TIA я в курсе и WinCC мне известен, PLCS от сименса не видел еще.

Добавлено через 8 минут
ps:

для примера:
созданы в разных средах, например
LOgoSOftComfort, LOGO! опрашивается, как 200й, TIA c 315F и 400й (ни разу не программировал) в Step c 5.5
1. Соеденены в сеть ProfiNet между собо без SCADA
2. со SDCADA
0
91 / 29 / 6
Регистрация: 17.03.2016
Сообщений: 212
13.12.2017, 11:21
Предлагаю следующую библиотеку для обмена с контроллерами siemens серии S7-200, 300, 400, 1200* для платформы NET.
Берете Microsoft Visual Studio, прицепляете туда эту библиотеку и создаете приложение для чтения/записи значений входов/выходов,меркеров,таймеров,регистров блоков данных
1
 Аватар для quench
1 / 1 / 0
Регистрация: 17.06.2008
Сообщений: 39
13.12.2017, 12:45
Предлагаю следующую библиотеку для обмена с контроллерами siemens серии S7-200, 300, 400, 1200* для платформы NET.
Берете Microsoft Visual Studio, прицепляете туда эту библиотеку и создаете приложение для чтения/записи значений входов/выходов,меркеров,таймеров,регистров блоков данных
прекрасно, написали, скомпилировали и далее? нужно же интегрировать скомпилированный проект.
для примера два варианта конфигурации железа привел.

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

Повторюсь,тогда зачем в архивах проект PLCS?
цитату вопроса я приводил
"А в какой средой разработки для PLC пользуетесь?"
Microsoft Visual Studio это не среда разработки для PLC
0
91 / 29 / 6
Регистрация: 17.03.2016
Сообщений: 212
13.12.2017, 14:38
Запускаем написанное и скомпилированное приложение из под windows и пишем/читаем по событиям.
Например:
- сделали "label-ы" на форме и по таймеру записываете в них значение входов i0.0 i0.1 true/false или нарисовали кружок и в зависимости от состояния входа красите его в определенный цвет.
- сделали textbox, записали в него значение которое Вам нужно и по событию нажатия кнопки пишете это значение в определенный регистр определенного блока данных.
Эта библиотека только читает и записывает данные в определенные участки памяти контроллера, она никак не взаимодействует с программой внутри контроллера.
погуглите библиотеку Libnodave

Добавлено через 7 минут
Библиотека работает типа как "Variable Table" в Simatic Manager )))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2017, 14:38
Помогаю со студенческими работами здесь

Соединение датчика температуры с ПЛК Siemens S7-300 по RS-485
Здравствуйте! Могу ли я подключить датчик температуры по RS-485 с ПЛК Siemens S7-300? Если нет то как можно реализовать соединение

Запрос к области памяти ПЛК siemens s 300 по сети Profibus
Доброго времени суток. Возникла необходимость соединить 2 контроллера Siemens s 300 по сети Profibus. сеть реализовал Accessible nodes...

[Siemens s7 314c 2dp] Корректная программа для ПЛК одной версии не записывается в ПЛК другой версии
Здравствуйте! Прошу совета как быть. Ситуация следующая: Siemens s7 314c 2dp. ПЛК версии 1.0 вышел из строя. Слетела прошивка....

Выбор ноутбука для работы с ПЛК Siemens и др
Всем доброго времени суток. Прошу совета от знающих. Наш отдел занимается ремонтом технологического оборудования, у которого есть ПЛК....

Какие модули расширения подходят для конкретного ПЛК Siemens
Доброго времени суток. Вопрос: в какой документации указано какие модули расширения подходят для конкретного ПЛК Сименс. И после установки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru