Коммуникационная библиотека Snap7 для ПЛК Siemens серии S7. Введение [просто для понимания]
Коммуникационная библиотека Snap7 для ПЛК Siemens серии S7. Введение [просто для понимания]

Оглавление

Введение

Недавно я разрабатывал проект. Будучи императором технологий, я завершил разработку технологического процесса и механическое проектирование. Чтобы стать более профессиональным, я начал пробовать электрическое рисование и программирование ПЛК. В сочетании с развитием Интернета вещей существует идея передавать данные в базу данных Linux и сохранять их, тем самым реализуя удаленный мониторинг внутренней или внешней сети, а также интегрируя технологию искусственного интеллекта для анализа параметров процесса для оптимизации процессов и сигналов тревоги.

Когда я попросил Ду Нианга подключить ПЛК к Raspberry Pi, я обнаружил Snap 7. Таким образом, данные ПЛК можно перенести в Linux.

В Snap7 относительно мало информации, и вся она на английском языке.

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

ссылка

Официальный сайт Snap7: http://snap7.sourceforge.net/ https://pypi.org/project/python-snap7/ http://www.6dm.club/index.php/2018/04/07/ https://blog.csdn.net/zxpbuct/article/details/80079698

Snap7 Введение

Цель Snap7

Snap7 — это библиотека с открытым исходным кодом, основанная на Ethernet и связи с ПЛК Siemens серии S7.

Поддерживает связь Ethernet, включая S7-200, S7-200 Smart, S7-300, S7-400, S7-1200 и S7-1500 серии S7.

Применимая система

Поддерживает все платформы 32/64-бит Intel/AMD. Например: Windows (кроме Windows Me и 95); Linux и Linux-подобные (Raspberry Pi, UBeagleBone Black, DOO и т. д.), БСД; Оракул Солярис; AppleOSX

Поддерживаемые языки

Поддерживаемые языки относительно широки Pascal; C#; C++; C; LabVIEW Python; Node.js Java.

Среди них чаще встречается Python.

Введение в связь Siemens S7

ПЛК серии Siemens S7 использует следующие два метода связи: 1) Открытый TCP\IP можно использовать для подключения ПЛК и другого оборудования сторонних производителей. 2) Протокол S7 Протокол связи Ethernet, разработанный самой Siemens и используемый для внутренней аппаратной связи Siemens.

Сообщения передачи у них разные, как показано ниже:

Числа Siemens хранятся в двоичном формате с прямым порядком байтов (BIG-Endian), тогда как наши обычные компьютеры часто хранятся в режиме с прямым порядком байтов (Little-Endian). Режим Big-endian означает, что младшие биты данных хранятся в старшем адресе памяти, а старшие биты данных хранятся в младшем адресе памяти. Режим Little-endian означает, что младшие биты данных хранятся по младшему адресу памяти, а старшие биты данных сохраняются по старшему адресу памяти. Например: двойное слово DWORD 0X2F11214C. ПЛК

PC

Поэтому данные необходимо преобразовать

Компоненты Snap7

Snap7 При полном соединении ПК и сети ПЛК он также содержит те же три объектных компонента, что и S7: 1) Клиент 2) Сервер 3) Соавторы Примечание. В одном приложении можно одновременно использовать три объекта; одновременно можно создавать экземпляры многих объектов одного типа; многие приложения могут использовать Snap7 одновременно; Об этих трех компонентах объектов,Не очень понимающий,Доступно по адресу http://www.6dm.club/index.php/2018/04/07 и http://snap7.sourceforge.net/.

Sanp7 API

Если нам нужно прочитать 16-битные данные DB32 в 192.168.10.100 S7-300PLC, нам нужно: 1) Создайте подключение клиента Snap7; 2) Подключитесь к ПЛК; 3) Чтение данных БД; 4) Закройте Клиент (соединение будет автоматически разорвано)

Исходный код С++

Язык кода:javascript
копировать
#include “snap7.h”;
   
    byte MyDB32[256]; //
  byte is a portable type of snap7.h
    TS7Client *Client;
   
  void SymplyGet()
  {
   
    MyClient = new TS7Client();
   
  MyClient->ConnectTo(“192.168.10.100”,0,2);
   
  MyClient->DBRead(32, 0, 16, &MyDB32);
    delete MyClient;
  }

Семейное ведро Jetbrains 1 год 46, стабильная послепродажная гарантия

язык Си

Язык кода:javascript
копировать
#include “snap7.h”;
   
    byte MyDB32[256]; 
    S7Object Client;  // It’s a native integer
   
  void SymplyGet()
  {
   
    MyClient =
  Cli_Create();
   
  Cli_ConnectTo(MyClient, “192.168.10.100”,0,2);
   
  Cli_DBRead(MyClient, 32, 0, 16, &MyDB32);
   
  Cli_Destroy(&MyClient); // passed by
  ref
  }

#include “snap7.h”;

Язык кода:javascript
копировать
byte MyDB32[256]; //

byte is a portable type of snap7.h TS7Client *Client;

void SymplyGet() {

Язык кода:javascript
копировать
MyClient = new TS7Client();

MyClient->ConnectTo(“192.168.10.100”,0,2);

MyClient->DBRead(32, 0, 16, &MyDB32); delete MyClient; }

Исходный код, руководство, загрузка образца

Загрузка исходного кода: https://sourceforge.net/projects/snap7/files/1.4.2/snap7-full-1.4.2.7z/download Загрузка исходного кода происходит очень медленно: скачать его можно из Baidu Cloud: https://pan.baidu.com/s/1pZPmijUQdYN-xia6Ll4VYg, пароль: 6eo8

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

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/203721.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose