Регистрация данных в IEC 61131-3:загрузка SFTP на основе мощности Curl
Несколько недель назад я получил следующий вопрос. Вам необходимо загрузить файл журнала на SFTP-сервер с помощью программы, которая запускается в ESM.
Протокол передачи файлов SSH (также безопасный протокол передачи файлов или SFTP) — это сетевой протокол, который обеспечивает доступ к файлам, передачу файлов и управление файлами через любой надежный поток данных. Он был разработан Инженерной группой Интернета (IETF) как расширение протокола Secure Shell (SSH) версии 2.0 для обеспечения возможностей безопасной передачи файлов.
SFTP включен в прошивку PLCnext, так что это не должно быть проблемой.
Шаг 1:Я начал создавать файл журнала, используя структурированный текст. Примеры, как это сделать, можно найти здесь:
https://www.plcnext-community.net/en/hn-makers-blog/438-datalogging-in-iec-61131-3-the-basic-principle.htmlhttps://www.plcnext-community.net/ en/hn-maker-blog/447-datalogging-in-iec-61131-3-create-your-own-file-manager.htmlШаг 2:Мне понадобился SFTP-сервер для тестирования приложения ПЛК. Я использовал CrushFTP, который установил на виртуальную машину, работающую на моем ноутбуке.
После установки программного обеспечения вам необходимо создать пользователя-администратора для веб-интерфейса. После этого вы можете создать пользователя для доступа к ПЛК.
Для этого примера:пользователь =PLCnext, пароль =123456789
Шаг 3. Загрузите файл с помощью командной строки.
На приведенном выше снимке экрана вы можете видеть, что мы сначала даем команду, а на втором этапе вводим пароль. Если мы хотим автоматизировать эту процедуру с помощью FB «PBCL_SysLinuxShell_1», нам нужна однострочная команда.
Этот FB можно найти в библиотеке PLCnextBase. (https://www.plcnextstore.com/#/720)
Итак, нам нужна еще одна команда для загрузки файла. Давайте посмотрим на Curl.
Версия, установленная с прошивкой 2020.6.1, не поддерживает SFTP. Благодаря Oliver Warneke я смог установить другую версию Curl. Мы не будем проходить весь процесс установки, но в результате получится версия, поддерживающая SFTP. С прошивкой 2021.0.0 LTS вы сможете использовать следующую версию.
Благодаря Curl теперь мы можем использовать другую команду.
curl -k -sS --key ~/.ssh/id_rsa --max-time 25 --connect-timeout 10 "sftp://192.168.1.50:22/test/Upload/" --user "PLCnext:12345679" -T "// opt/plcnext/Test.pdf» –ftp-create-dirs
Когда вы используете эту команду для FB Shell, вы можете увидеть результат в следующем файле журнала для проверки вашей программы.
/opt/plcnext/PLCnextBase.ServiceProvider.log
Некоторое объяснение аргументов:
-k, – небезопасно
(TLS) По умолчанию каждое SSL-соединение, которое делает curl, проверяется на безопасность. Этот параметр позволяет curl продолжать работу даже для соединений с сервером, которые в противном случае считаются небезопасными. Соединение с сервером проверяется путем проверки правильности имени сертификата сервера и успешной проверки с использованием хранилища сертификатов.
-S, --показать-ошибку
При использовании с -s, --silent заставит curl показывать сообщение об ошибке в случае сбоя.
-с, –тихо
Бесшумный или тихий режим. Не показывать индикатор прогресса или сообщения об ошибках. Делает Curl немым. Он по-прежнему будет выводить запрашиваемые вами данные, возможно, даже на терминал/стандартный вывод, если вы не перенаправите их. Используйте -S, --show-error в дополнение к этому параметру, чтобы отключить индикатор выполнения, но по-прежнему отображать сообщения об ошибках.
–ключ <ключ>
(TLS SSH) Имя файла закрытого ключа. Позволяет вам указать свой закрытый ключ в этом отдельном файле. Для SSH, если он не указан, curl пробует следующие кандидаты по порядку:«~/.ssh/id_rsa», «~/.ssh/id_dsa», «./id_rsa», «./id_dsa».
-m, --max-time <секунды>
Максимальное время в секундах, которое вы отводите для выполнения всей операции. Это полезно для предотвращения зависания пакетных заданий в течение нескольких часов из-за медленных сетей или отказов каналов.
--connect-timeout <секунды>
Максимальное время в секундах, которое вы позволяете установить curl. Это ограничивает только фазу подключения, поэтому, если curl подключится в течение заданного периода, он продолжит работу, а если нет, то завершится.
-T, --upload-file <файл>
Это передает указанный локальный файл на удаленный URL-адрес. Если в указанном URL-адресе нет файловой части, curl добавит имя локального файла.
–ftp-создать-каталоги
(FTP SFTP) Когда URL-адрес/операция FTP или SFTP использует путь, который в настоящее время не существует на сервере, стандартное поведение curl — сбой. Используя эту опцию, curl вместо этого попытается создать отсутствующие каталоги.
Ссылки:
https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocolhttps://www.crushftp.com/index.htmlhttps://curl.se/docs/manpage.htmlПромышленные технологии
- Интерфейс командной строки
- Раскрытие возможностей промышленного Интернета вещей
- 4 теста, определяющих эффективность силовых трансформаторов
- Отключения электроэнергии:5 способов предотвратить негативные последствия
- Браунаут против Блэкаута:в чем разница?
- Что влияет на периодичность технического обслуживания дизель-генератора
- Поиск запасного генератора:4 жизненно важных вопроса
- Виртуальная электростанция Tesla:переосмысление электрической сети
- Веб-семинар:Мощь энергетического мониторинга в Индустрии 4.0
- Сила командной работы в управлении производством