出于学习PLC编程或者实现一个控制系统的目的,并不仅仅满足于单纯的PLC模拟器仿真调试,有时候我们需要一台基于硬件平台的PLC工控机进行快速的项目开发。本文中笔者将会介绍如何把树莓派打造成小型的PLC。我们将分别尝试安装两种不同的软PLC运行时,一个是CoDeSys,另一个是OpenPLC。两者都支持基于IEC61131-3标准IL 、ST、 FBD 、LD、 CFC、 SFC 六种PLC编程语言进行开发。(_树莓派因为缺乏认证测试不能完全替代专业的PLC控制器用于商业用途的应用开发,建议仅用于学习和评估测试_)
PLC的全称是可编程逻辑控制器(Programmable Logic Controller),是一种具有微处理机的数字电子设备,用于自动化控制的数字逻辑控制器,在工业控制领域得到广泛的运用。在这里以西门子的PCS7流程控制系统为例,一套PLC系统包括一个PLC控制器S7-400,通过Profinet总线连接分布式普通输入输出系统SIMATIC ET 200SP,和安全输入输出系统SIMATIC ET 200M和一个触摸屏实现人机控制。
PLC控制器S7-400
SIMATIC ET 200SP
SIMATIC ET 200M
SIMATIC HMI Comfort 触摸屏
只是出于PLC编程学习和简单应用的目的话,我们其实可以省去这些价格不菲的设备和开发软件的许可证费用,转向一些开源的软PLC平台。软PLC是一种软件技术,旨在把嵌入式计算机变成一个功能齐全的可编程逻辑控制器。我们在一个嵌入式平台上安装好PLC运行时(Runtime)后便可以实现软PLC。下面将介绍我们要安装的软PLC平台。
关于PLC的任务调度介绍可以参考
任务管理这件事(下)(对比PLC,安卓)71 赞同 · 19 评论文章
CODESYS 软件工具包是一款基于先进的.NET 架构和 IEC 61131- 3 国际编程标准的、 面向工业 4.0及物联网应用的软件开发平台。在CODESYS 软件平台下可以实现:逻辑控制( PLC)、运动控制 ( Motion Control) 及 CNC 控制、人机界面( HMI)、基于 Web Service 的网络可视化编程和远程 监控、冗余控制(Redundancy)和安全控制( Safety)。软件平台的架构图如下
CodeSys平台的架构图
CodeSys的开发软件本体是免费的,只是一些额外的附加包需要收费(暂时我们也不需要)。
[
CoDeSys基础知识 基于IEC 61131-3国际标准
京东
¥91.80
去购买
在树莓派上安装好CodeSys运行时后,如果没有购买许可证的话可以有两小时的运行时间不受功能限制,运行时间到了之后每次重启树莓派可以继续有两小时的运行时间。
其中树莓派CodeSys单核许可证的话价格在650元
树莓派CodeSys单核许可证
树莓派CodeSys多核许可证的价格在1000元
树莓派CodeSys多核许可证
单核许可证和多核许可证的区别在于软PLC对于树莓派的核心的利用情况不同,并且单核许可证只能用于学习研究目的无法使用到商业项目中,而多核许可证允许利用于商业项目。一般来说,我们无需额外购买许可证便可食用,每次两小时的运行时间到了之后用sudo reboot命令重启树莓派即可。当然如果要用于生产力环境需要持续运行下去,可以根据具体的需求考虑购买相应的许可证。
OpenPLC是一个完全免费,开源的软PLC平台,项目托管在Github上
OpenPLC_v3: OpenPLC Runtime version 3github.com/thiagoralves/OpenPLC_v3
一个简单的介绍视频如下
02:00
OpenPLC的介绍
我们首先需要有一个树莓派,树莓派3,树莓派4,树莓派Zero 2代都可以并开启了SSH服务。
[
树莓派4B Raspberry Pi 4代B型
京东
¥799.00
去购买
在CodeSys官网注册一个账号并下载和安装CodeSys开发平台。在菜单的工具列表中选择Update Rasberry Pi。
在弹出的对话框中,填写树莓派的SSH连接的用户名和密码以及IP地址,然后点击Install安装便会自动安装CodeSys运行时。安装过程中会询问许可证的类型,在这里我们选择标准单核即可。(可以有两小时的无限制运行时间)
安装完成之后,我们在codesys新建一个项目
在设备中选择CodeSys Control for Raspberry Pi SL。
在项目工程的GPIOs_A_B中可以对树莓派的输入输出口进行映射。
树莓派的接口图如下
同时在CodeSys的通信设置中我们可以发现树莓派。如下图所示,选择登入图标便可下载程序。
选择运行图标便会运行PLC程序,并实时显示当前的运行状态。
在树莓派的终端输入
git clone https://github.com/thiagoralves/OpenPLC_v3.git
cd OpenPLC_v3
./install.sh rpi
在漫长的编译安装过程结束后便可以sudo reboot重启树莓派。
重启之后再浏览器输入树莓派的 IP地址:8080 进入OpenPLC的网页端,默认的用户名和密码都是openplc。_建议登入OpenPLC后第一件事是修改用户名和密码。_
接着在Hardware这个选项中选择Raspberry Pi这个硬件层并保存设置。开启这个设置会启用树莓派的输入输出口。
树莓派的输入输出口在OpenPLC的的映射接口图如下
OpenPLC的开发平台OpenPLC Editor可以在这个网页下载
OPENPLC EDITOR | openplcproject.comwww.openplcproject.com/plcopen-editor/
点击上图所示生成按钮便会编译生成 .st OpenPLC格式文件,如下图所示
在树莓派的OpenPLC网页端Programs上传这个文件
最后点击启动PLC,程序便运行起来。同时可以在Monitoring中实时观察变量的值。
原网址: 访问
创建于: 2022-12-28 11:13:10
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论