亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

在 IEC 61131-3 中使用 Curl 实现安全 SFTP 上传

几周前我收到这样一个问题。需用运行在 ESM 中的程序,通过 SFTP 服务器上传日志文件。
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.html

https://www.plcnext-community.net/en/hn-makers-blog/447-datalogging-in-iec-61131-3-create-your-own-file-manager.html

步骤 2:我需要 SFTP 服务器测试 PLC 应用。我用 CrushFTP,安装在笔记本电脑的虚拟机中。

安装软件后,需为 Web 界面创建管理用户。完成后,可为 PLC 访问创建用户。

本例:user = PLCnext, password = 123456789

步骤 3:命令行上传文件。

在 IEC 61131-3 中使用 Curl 实现安全 SFTP 上传

上图可见先给命令,第二步输入密码。若要用 “PBCL_SysLinuxShell_1” FB 自动化此过程,需单行命令。

此 FB 在 PLCnextBase 库中。(https://www.plcnextstore.com/#/720)

所以需另一命令执行文件上传。看 Curl。

在 IEC 61131-3 中使用 Curl 实现安全 SFTP 上传

固件 2020.6.1 自带版本不支持 SFTP。得益于 Oliver Warneke,我安装了支持 SFTP 的 Curl 版本。不展示完整安装过程,结果是支持 SFTP 的版本。固件 2021.0.0 LTS 将可用以下版本。

在 IEC 61131-3 中使用 Curl 实现安全 SFTP 上传

得益于 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

将此命令用于 Shell FB,可在以下日志文件查看结果检查程序。

/opt/plcnext/PLCnextBase.ServiceProvider.log

参数说明:

-k, --insecure

(TLS) 默认每个 SSL 连接都验证安全。此选项允许 curl 对服务器连接继续操作,即使被认为不安全。通过确保服务器证书含正确名称并用证书存储成功验证来验证服务器连接。

-S, --show-error

配合 -s, --silent 使用时,失败则显示错误信息。

-s, --silent

静默模式。不显示进度条或错误信息。使 Curl 静音。仍输出请求的数据,除非重定向否则可能输出到终端/stdout。配合 -S, --show-error 禁用进度条但仍显示错误。

--key

(TLS SSH) 私钥文件名。允许在单独文件提供私钥。SSH 时若未指定,curl 依次尝试:'~/.ssh/id_rsa'、'~/.ssh/id_dsa'、'./id_rsa'、'./id_dsa'。

-m, --max-time

允许整个操作的最长秒数。防止批处理作业因网络慢或链路中断挂起数小时。

--connect-timeout

允许 curl 连接阶段的最长秒数。仅限制连接阶段,若在给定周期内连接成功将继续 — 否则退出。

-T, --upload-file

将指定本地文件传输到远程 URL。若指定 URL 无文件部分,curl 将追加本地文件名。

--ftp-create-dirs

(FTP SFTP) FTP 或 SFTP URL/操作用的路径在服务器不存在时,curl 标准行为是失败。用此选项,curl 将尝试创建缺失目录。

参考:

https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol

https://www.crushftp.com/index.html

https://curl.se/docs/manpage.html


工业技术

  1. SPICE 命令行界面使用详解
  2. 电商赋能制造业:解锁增长新引擎
  3. 驾驭工业物联网实现增长:超越成本节约
  4. 评估电力变压器效率的四大关键测试
  5. 防范停电冲击的 5 大核心策略:守护业务连续性
  6. 电压跌落与全面停电:核心差异、成因及企业应对指南
  7. 柴油发电机维护频次的关键影响因子深度解析
  8. 选对备用发电机的四大黄金提问:精准匹配可靠供电
  9. 特斯拉虚拟电厂:重塑全球能源网络的数字孪生实践
  10. 能源监测驱动工业 4.0 效能跃升:专家网络研讨会邀请
  11. 提升工厂效率:掌握团队协作实现卓越管理
  12. 工业 4.0:自动化重塑制造业的变革引擎