N1盒子特指斐讯N1盒子,现已停产,但是因为配置相对不错,成为DIY刷机的首选,网上教程也很多,本文介绍把N1盒子刷成PLC使用,大致过程为先给N1盒子刷入Linux系统,再刷入codesys runtime,即可当成PLC使用,利用codesys的IDE即可进行PLC程序上传下载。
N1盒子刷入Linux系统
斐讯N1盒子基本配置如下,本次刷入的Linux系统为armbain
- ARMv8 Processor rev 4 (v8l) x 4主流架构
- Amgoics905D Cortex-A53 4核CPU
- 2G 的内存 + 8G EMMC 存储
刷入armbain过程不做具体介绍,可自行百度,大致过程为把镜像写入U盘,插上靠近HDMI的那个口,启动,自动就会启动U盘中的系统;
本次使用的是Armbian5.77镜像,参考链接,由于本次买的N1盒子是别人挖矿用的,并不是原厂,简单操作就能刷入armbain
启动后,输入默认用户名和密码,root, 1234,第一次刷机后要更改密码,更改密码后使用ctrl+C跳过设置新账号,然后使用nand-sata-install命令把系统写入emmc,完成后拔下U盘,重启即可进入系统
更改源(先跳过)
备注:网上有说要改源的,但是我改了反而连不上,后来又改回去就好了,docker也能正常安装,先记录在这里
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
更新软件包
apt-get upgrade
设置时区为北京时间,之后可以用date 指令查看当前系统时间
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
安装docker
curl -fsSL https://get.docker.com/ | sh
安装完成后,执行docker run hello-world,如果docker安装成功,会自动拉取,执行完成后,使用 docker images 即可看到安装的镜像,使用查看指令查看安装的docker
网络设置
网络配置文件地址 etc/network/interfaces
原设置为自动分配IP
allow-hotplug eth0
no-auto-down eth0
iface eth0 inet dhcp
更改为固定IP
auto eth0
iface eth0 inet static
address 192.168.139.100
netmask 255.255.255.0
gateway 192.168.139.1
说明:Debian 中 allow-hotplug 与 auto 的这两个指令有不小区别,参考链接,个人建议,采用静态IP时使用auto指令,采用动态ip时使用allow-hotplug指令;
auto 配置这个命令,仅仅是用于开机启动时启动网络接口,不管你插不插网线,网卡都会启用;
allow-hotplug 只有当内核从网络接口检测到热插拔事件后才会启动该接口。,配置这个命令,是为了保证端口状态及时更新,或者避免由于手动操作导致的重启 network 失败。
最后采用nmtui指令,进行无线网络配置
在N1盒子中刷入codesys runtime
Codesys运行环境系统结构
所用软件的下载及安装
先去官网下载codesys IDE安装包、runtime和gateway下载
注意:下载的IDE要与runtime版本匹配!
IDE安装包到中文官网下载,官方名字如 CODESYS Development System V3.5 SP 17
runtime建议到英文官网下载,那里面的较新
CODESYS Store International | CODESYS Store International
例如下面的通用arm版、树莓派版和X86架构的Linux版,正常这些runtime在设备上运行时是需要收费的,不过部分功能可以免费试用2小时
gateway下载
从codesys store中搜索gateway,本次下载的是下面的第一个,for Linux版本
先用管理员权限安装IDE,之后安装gateway和runtime包,参考步骤如下
注意:不要直接安装,要通过codesys IDE包管理器安装,这里按照下面选择好安装包后,所有选择完毕后,关闭IDE,系统会自动开始安装。
在N1盒子中安装runtime环境
工具-->Update Linux ARM64,之后输入用户名,密码。
说明:下图中Update Linux是对于x86架构的Linux系统所用
这个步骤相当于刷runtime,完成后,可以认为N1盒子就是一台PLC设备了,只不过由于没有授权,只能试用部分功能,且时间为2小时。
点击上图中system info即可看到系统信息。
创建并运行一个codesys程序
这部分不展开了,部分截图如下
新建项目
添加设备
创建子程序
创建主程序,习惯把POU作为主程序,并在其中调用子程序1
创建任务执行周期,并把POU加入到这个任务中
创建要跟踪,用于信号跟踪调试,案例如下
之后编译程序,并将程序下载到PLC中,扫描网络,找到要连接的设备
初次下载会要求创建账号和密码,根据提示设置如下
下图是下载后在线监控截图