Ведение архива в ПЛК

Автоматизация технологических процессов, системы управления, АСУ ТП, АСКУЭ, программирование ПЛК, человеко-машинный интерфейс, сетевое оборудование, протоколы

Ведение архива в ПЛК

Сообщение yur » 23 ноя 2018, 12:38

Имеется такая задачка.
Нужно вести статистику включений/выключений ПЛК и, условно говоря, нажатия какой-либо кнопки.
S7-300 Step7 подключен через профинет.
Статистику нужно вести на компьютере, в каком формате - это уже вторично, т.е. не особо важно.
Никто не сталкивался с подобным вопросом?

Допустим, организуем циклическую запись в датаблок (буфер), ну пускай на 20-50 записей.
Дальше возникают вопросы - как передавать на ПК?
Проблемка в том, что ПК может быть включен гораздо позже после старта ПЛК, может быть перезагружен и тд.
И нужно как-то синхронизировать этот буфер с таблицей на ПК.
СКАДЫ нет и не будет. Но есть рантайм Винфлекс и вообще есть возможность устанавливать что-то самописное.

И еще вопрос - как отследить выключение ПЛК?
Киров репортинг!
Аватара пользователя
yur
Любитель
 
Сообщения: 78
Зарегистрирован: 26 дек 2016, 19:47
Откуда: Minsk

Re: Ведение архива в ПЛК

Сообщение Автоматизатор » 23 ноя 2018, 14:10

Собирали статистику с контроллеров по профинет на станцию (компьютер + рантайм Винфлекс).

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

Не слишком ли? Может надо упростить требования?
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 955
Зарегистрирован: 09 окт 2012, 05:18

Re: Ведение архива в ПЛК

Сообщение yur » 23 ноя 2018, 14:23

Автоматизатор писал(а):Не слишком ли? Может надо упростить требования?

Пока хочется думать что не слишком.
а) Контроллер всего один
бэ) комп вроде бы должен всегда работать, но иногда его могут забыть включить сразу, либо перегрузить если чего с ним не так.
вэ)События (статистику которых необходимо вести) в ПЛК будут возникать не так часто, по идее буфер на полста записей должно хватить на пару дней.

Пока не очень понятно как синхронизировать.
Если например на момент старта рантайма, в буфере уже лежит пара новых записей, которые еще не перенесены в архивный файл на ПК
Киров репортинг!
Аватара пользователя
yur
Любитель
 
Сообщения: 78
Зарегистрирован: 26 дек 2016, 19:47
Откуда: Minsk

Re: Ведение архива в ПЛК

Сообщение Михайло » 23 ноя 2018, 17:37

Контроллер может передавать данные любой сложности и структуры через TCP, для этого надо изучать библиотечные функции TSEND_C, TRCV_C. Можно реализовать передачу в формате файла csv, например. И это было бы логичным и понятным всем.

Можно передавать также в простом формате JSON, многие системы умеют работать с этой штукой, но в конкретной задаче этот формат избыточен, судя по всему.

На TCP-функциях можно реализовать урезанный HTTP-протокол и HTML-контент, тогда в этом случае можно будет тестировать обмен данными в обычном браузере. Поставите себе такую планку - многому научитесь. Я помогу с примерами кода.
Михайло
Администратор
 
Сообщения: 3820
Зарегистрирован: 19 сен 2012, 19:16

Re: Ведение архива в ПЛК

Сообщение Автоматизатор » 23 ноя 2018, 18:36

Собирать данные штатными средствами поросто. А городить самопальный огород - сплошной геморрой. Разве что наработаться.
Аватара пользователя
Автоматизатор
Профессионал
 
Сообщения: 955
Зарегистрирован: 09 окт 2012, 05:18

Re: Ведение архива в ПЛК

Сообщение yur » 23 ноя 2018, 18:45

Михайло писал(а):Контроллер может передавать данные любой сложности и структуры через TCP, для этого надо изучать библиотечные функции TSEND_C, TRCV_C. Можно реализовать передачу в формате файла csv, например. И это было бы логичным и понятным всем.
.


В Степ7 5.5 нет TSEND_C. Только TSEND.
А вообще, эта система похоже не работает с динамическими айпи адресами, получаемыми от DHCP

За примеры буду весьма благодарен.
Киров репортинг!
Аватара пользователя
yur
Любитель
 
Сообщения: 78
Зарегистрирован: 26 дек 2016, 19:47
Откуда: Minsk

Re: Ведение архива в ПЛК

Сообщение Михайло » 24 ноя 2018, 05:15

yur писал(а):В Степ7 5.5 нет TSEND_C. Только TSEND.

TSEND_C - это современный вариант TSEND, в которую встроены функции TCON/TDISCON. В вашем случае придётся ещё и эти функции использовать для установления соединения.

yur писал(а):А вообще, эта система похоже не работает с динамическими айпи адресами, получаемыми от DHCP

Да, но если сильно надо, можете реализовать и DHCP врукопашную на этих функциях. :)
Михайло
Администратор
 
Сообщения: 3820
Зарегистрирован: 19 сен 2012, 19:16

Re: Ведение архива в ПЛК

Сообщение yur » 27 ноя 2018, 11:32

Михайло писал(а):Михайло

Написал в личку
Киров репортинг!
Аватара пользователя
yur
Любитель
 
Сообщения: 78
Зарегистрирован: 26 дек 2016, 19:47
Откуда: Minsk

Re: Ведение архива в ПЛК

Сообщение Михайло » 27 ноя 2018, 11:33

вечером, если не забуду, скину :)
Михайло
Администратор
 
Сообщения: 3820
Зарегистрирован: 19 сен 2012, 19:16

Re: Ведение архива в ПЛК

Сообщение Михайло » 27 ноя 2018, 18:27

S7-1200 TIA Portal V13 SP2 BASIC TSEND_C, TRCV_C

https://my-files.ru/5z6w8y

Удалил из реального проекта лишнее. Все основное действо в блоке TCP.
Михайло
Администратор
 
Сообщения: 3820
Зарегистрирован: 19 сен 2012, 19:16

Re: Ведение архива в ПЛК

Сообщение yur » 28 ноя 2018, 23:43

Спасибо, будем пытаться разобраться.
Пока совсем непонятно как на компе принимать посылки с ПЛК.

И вопрос ( допустим используем TSEND)
Сначала я открываю соединение с помощью TCON
далее передаю информацию программе на ПК.
После этого нужно сразу закрывать соединение - TDISCON?
И как ПЛК будет реагировать если связь с компом отвалится?

запасного ПЛК к сожалению нет, экспериментировать не на чем.
Киров репортинг!
Аватара пользователя
yur
Любитель
 
Сообщения: 78
Зарегистрирован: 26 дек 2016, 19:47
Откуда: Minsk

Re: Ведение архива в ПЛК

Сообщение Михайло » 29 ноя 2018, 05:08

Ах да, на компьютере можно работать прямо в браузере, пишите примерно так:

http://192.168.1.40:2000/?position=300&quantity=2
или
http://192.168.1.40:2000/?position=300& ... &support=1

ПЛК разбирает строку position=300, quantity=2, support=1, проверяет на "вшивость" и переписывает в соответствующие тэги. В ответ выводится маленькая html-страница.
Это самый обычный HTTP-протокол, компьютер из браузера делает запрос GET, передавая параметры в URL. ПЛК получает, парсит запрос, отыскивая там "position=" и остальное. В ответ отсылает

Код: Выделить всё
HTTP/1.1 200 OK
Content-Length: XXXX
Content-Type: text/html

<html>
<head><title>S7-1200 response</title></head>
<body><p>activated=X
ready=X
position=XXXX
left=XXXX
support=X</p>
<h1>[Статус позиционера] [Результат]</h1></body>
</html>


Браузер воспринимает это как обычный ответ веб-сервера и обрабатывает, отображая html-страницу с текущим состоянием оборудования.
Всё это реализовано в этом небольшом проекте, только возможно в результате вырезания остального функционала что-то сломалось.
Михайло
Администратор
 
Сообщения: 3820
Зарегистрирован: 19 сен 2012, 19:16

Re: Ведение архива в ПЛК

Сообщение Михайло » 29 ноя 2018, 05:25

yur писал(а):Сначала я открываю соединение с помощью TCON
далее передаю информацию программе на ПК.
После этого нужно сразу закрывать соединение - TDISCON?
И как ПЛК будет реагировать если связь с компом отвалится?

На уровне интернета раньше было именно так: подсоединился, передал данные запрос-ответ, закрыл соединение. Потом консорциум интернета добавил в HTTP-протокол постоянное соединение, точнее Keep-Alive (удерживать соединение) и выдержка времени в секундах, по умолчанию в течение обычно 5 минут. Этот вариант стал навязываться как основной и кажется браузеры так и делают.

ПЛК на уровне операционной системы не контролирует TCP-соединения, это должны делать вы сами в программе, как вам душе угодно.

Вам нужно решить вопрос: кто устанавливает соединение и делает первый запрос - компьютер или ПЛК. В моем проекте инициатором был компьютер. В принципе несложно перевернуть роли, но тогда нельзя будет тестировать из браузера, так как браузер всегда клиент (инициатор).
Михайло
Администратор
 
Сообщения: 3820
Зарегистрирован: 19 сен 2012, 19:16


Вернуться в АВТОМАТИЗАЦИЯ

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1