上面是我的微信和QQ群,欢迎新朋友的加入。
在淘宝上有一个产品,叫做PLC远程下载模块,随便找了一个。
它的核心功能,是让客户在外网可以控制内网的设备。
关于内网穿透,有几种搞法
第一种是远程控制,常见的就是淘宝上卖的DTU模块,搞成4G或者网口,有的是1个或者1个以上模块,和服务器做设备配对,数据上传到服务器,然后再分发出来。会给一个控制软件或者网页控制的界面,用户通过软件实现一些控制操作,比如驱动继电器/读一下开关信号或者转成串口数据发出来。
这种应用场景挺多,比如智能家居的远程控电啥的,或者工业上一些远程命令操作,他有以下特点
1.数据需要进指定的服务器,卖家一般这个服务器是要收费用的,相当于另外一种租赁服务,有的做的比较好的,可能会送几年,但卖家不可能每个设备都送个服务器,这会让人家血亏。对一些敏感的行业来说,数据过人家的服务器,终究心里膈应。
2.有个第三方软件,当然也有的可能走的是串口->云端->串口的形式,本质上来说,是一个数据转发的工具,比如串口转串口,网口转串口,串口转485之类的。多个软件倒也没啥事,只是需要有个研发人员或者技术人员开发维护,它解决了数据的链路问题。
第二种是远程穿透,有名气的是花生壳,或者向日葵,直接把目标主机变成局域网的设备,它特点如下
1.一般用在电脑上,比如大家常用的远程桌面,像向日葵一样,网上卖的那种PLC远程下载模块,就是这种形式,让远程电脑像操作本地设备一样,实现固件下载/控制的功能
2.一般会有指定IP,模块本身是网关,将网络数据转给设备,也将设备数据转给远程主机。比如花生壳做的花生盒子就是这一类。
相比而言,前面那种使用更多,开发难度更小,淘宝上卖的也多,像什么有人物联,同时价格也更低。DIY的话,也会比较容易,买个4G模块,搭个单片机,互相怼数据,当然,容易不代表没技术含量,稳定性,抗干扰,异常处理,也很重要
众所周知,国内网络是比较费劲的,一般没法直接访问局域网的设备,没有广域网IP,可能买电信的网络,会有个FRP,做网络硬盘是可以用这个的。
毕竟国内三大运营商,我们也不能让人家全用电信,可以确定的一点是,要做网络穿透或者远程控制,无法避免要有一个云服务器,现在是信息时代,腾讯阿里有很多的物联网服务,一般会使用MQTT或者HTTP协议,这种,能实现远程控制的目的。只要让设备上网,向指定服务器,读写数据就行。
这种无法实现PLC远程下载,当然如果说技术过关,搞个bootloader,也没啥说的。
这不是我想要的,不是东西不行,而是他有个关键问题,必须要有人进来搞开发,一般PLC设备,都会带个网口,比如西门子的,会提供一个上位机,用户直接操作它的上位机就行,如果做的是远程控制,新加的网关怎么和已有的设备通信?不排除有的PLC提供相关的命令,做可以做,但是要时间。
我想要的是,用户有个PLC设备,现在就放在局域网,人家啥都搞好了,如果想在外网访问,能直接就通信上,让外网变成局域网,当然也有方案,比如电脑装个向日葵,别的电脑也装个向日葵,PLC远程下载模块,就是让模块代替电脑。在不影响客户原有配置,不增加研发力量的情况下,实现这个目的。
初期我考虑过三个方法。
第一个是反向SSH,这东西怎么说呢,能用,但是不好用,因为电脑的外网IP是会变的,今天用的好好的,明天就不行了,虽然也有自动监测的方案,终归觉得不合适,总不能说找个人,天天盯着看吧,这样事情就没有意义了。
第二个是openwrt,集成一些穿透服务,能用,我也做了相关的移植测试,怎么说呢,没有用习惯,可能是我对这东西不熟悉,一般来说做FRP挺多的
最终决定是使用OPENVPN,选他的原因是
1.安全,每个设备都是有密钥的,除非自己作死把密钥分享出去,不然别人进不来
2.稳定开源,这东西做了蛮多年了,用户群体不小,我查了相关PLC厂商,发现他们也是用的这个方案,既然能被PLC厂商看中,肯定是有缘由的
3.简单,只要装个软件,启动一下,就可以一直跑
4.IP可以指定,支持的设备数量多。这点很重要,不能说搞个设备就开个服务器,这不得搞死人
5.服务器可以自己搭,随便找个腾讯阿里服务器就行,挂着一年四季不用管他
经过一段时间的研发,搞出的板子如下
pcb正面示意图
功能说明
1.电源:板子输入电源为12~24V,运行功率为2~3.5W左右
2.Debug:系统串口调试接口,用于shell登录。
3.USB:目前主要用于固件烧录
4.WAN:入网接口,带DHCP自动配网,只要将网线直接接入就行,系统会自动连接设置IP
5.LAN:路由网口,接PLC,需要指定下级设备IP,目前默认设备IP为169.254.244.113,此IP可改。
6.SIM:4G模块SIM卡插槽,目前做的是移动的SIM卡
7.通用输出:输出5V电压
8.通用输入:输入3.3~5V电压
9.482&232:各两组
实物如下
与PLC连接状态如下
东西已经做好了,嘉立创算了下成本,打样5片,平均每块是600的成本,如果有量的话,简单算了下,不含4G模块,数量到了500ps左右,成本估计能到200元左右。