上面是我的微信和QQ群,欢迎新朋友的加入。

1.网穿介绍

在淘宝上有一个产品,叫做PLC远程下载模块,随便找了一个。

它的核心功能,是让客户在外网可以控制内网的设备。

关于内网穿透,有几种搞法

第一种是远程控制,常见的就是淘宝上卖的DTU模块,搞成4G或者网口,有的是1个或者1个以上模块,和服务器做设备配对,数据上传到服务器,然后再分发出来。会给一个控制软件或者网页控制的界面,用户通过软件实现一些控制操作,比如驱动继电器/读一下开关信号或者转成串口数据发出来。

这种应用场景挺多,比如智能家居的远程控电啥的,或者工业上一些远程命令操作,他有以下特点

1.数据需要进指定的服务器,卖家一般这个服务器是要收费用的,相当于另外一种租赁服务,有的做的比较好的,可能会送几年,但卖家不可能每个设备都送个服务器,这会让人家血亏。对一些敏感的行业来说,数据过人家的服务器,终究心里膈应。

2.有个第三方软件,当然也有的可能走的是串口->云端->串口的形式,本质上来说,是一个数据转发的工具,比如串口转串口,网口转串口,串口转485之类的。多个软件倒也没啥事,只是需要有个研发人员或者技术人员开发维护,它解决了数据的链路问题。

第二种是远程穿透,有名气的是花生壳,或者向日葵,直接把目标主机变成局域网的设备,它特点如下

1.一般用在电脑上,比如大家常用的远程桌面,像向日葵一样,网上卖的那种PLC远程下载模块,就是这种形式,让远程电脑像操作本地设备一样,实现固件下载/控制的功能

2.一般会有指定IP,模块本身是网关,将网络数据转给设备,也将设备数据转给远程主机。比如花生壳做的花生盒子就是这一类。

相比而言,前面那种使用更多,开发难度更小,淘宝上卖的也多,像什么有人物联,同时价格也更低。DIY的话,也会比较容易,买个4G模块,搭个单片机,互相怼数据,当然,容易不代表没技术含量,稳定性,抗干扰,异常处理,也很重要

众所周知,国内网络是比较费劲的,一般没法直接访问局域网的设备,没有广域网IP,可能买电信的网络,会有个FRP,做网络硬盘是可以用这个的。

毕竟国内三大运营商,我们也不能让人家全用电信,可以确定的一点是,要做网络穿透或者远程控制,无法避免要有一个云服务器,现在是信息时代,腾讯阿里有很多的物联网服务,一般会使用MQTT或者HTTP协议,这种,能实现远程控制的目的。只要让设备上网,向指定服务器,读写数据就行。

这种无法实现PLC远程下载,当然如果说技术过关,搞个bootloader,也没啥说的。

2.功能分析

这不是我想要的,不是东西不行,而是他有个关键问题,必须要有人进来搞开发,一般PLC设备,都会带个网口,比如西门子的,会提供一个上位机,用户直接操作它的上位机就行,如果做的是远程控制,新加的网关怎么和已有的设备通信?不排除有的PLC提供相关的命令,做可以做,但是要时间。

我想要的是,用户有个PLC设备,现在就放在局域网,人家啥都搞好了,如果想在外网访问,能直接就通信上,让外网变成局域网,当然也有方案,比如电脑装个向日葵,别的电脑也装个向日葵,PLC远程下载模块,就是让模块代替电脑。在不影响客户原有配置,不增加研发力量的情况下,实现这个目的。

3.方案

初期我考虑过三个方法。

第一个是反向SSH,这东西怎么说呢,能用,但是不好用,因为电脑的外网IP是会变的,今天用的好好的,明天就不行了,虽然也有自动监测的方案,终归觉得不合适,总不能说找个人,天天盯着看吧,这样事情就没有意义了。

第二个是openwrt,集成一些穿透服务,能用,我也做了相关的移植测试,怎么说呢,没有用习惯,可能是我对这东西不熟悉,一般来说做FRP挺多的

最终决定是使用OPENVPN,选他的原因是

1.安全,每个设备都是有密钥的,除非自己作死把密钥分享出去,不然别人进不来

2.稳定开源,这东西做了蛮多年了,用户群体不小,我查了相关PLC厂商,发现他们也是用的这个方案,既然能被PLC厂商看中,肯定是有缘由的

3.简单,只要装个软件,启动一下,就可以一直跑

4.IP可以指定,支持的设备数量多。这点很重要,不能说搞个设备就开个服务器,这不得搞死人

5.服务器可以自己搭,随便找个腾讯阿里服务器就行,挂着一年四季不用管他

4.成品

经过一段时间的研发,搞出的板子如下

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.成本分析

东西已经做好了,嘉立创算了下成本,打样5片,平均每块是600的成本,如果有量的话,简单算了下,不含4G模块,数量到了500ps左右,成本估计能到200元左右。

NUC980开源项目40-PLC远程下载/内网穿透(非技术)相关推荐

  1. 项目对接支付宝支付,内网穿透实现监听支付宝的支付成功异步回调通知

    调试的话使用支付宝的沙箱环境来进行调试 调试的时候因为是本地调试,没有上线的域名,无法被支付宝的异步回调请求所打到,这种情况下可以使用内网穿透来进行解决 内网穿透步骤: 内网穿透的几个常用软件 1.n ...

  2. vite创建的vue项目公众号本地开发内网穿透

    调试微信项目时在自己的电脑做了内网穿透,通过外网域名访问时页面无限刷新,控制台出现一闪而过的错误信息,捕捉后发现是websocket报错. vite.config.ts server: {hmr: { ...

  3. 免费搭建虚拟机Linux服务器,附带部署项目和内网穿透教程(亲测有效)cd

    最近在学习Linux服务器上进行项目部署,大家都知道在云服务器上可以部署项目,这可以使得在任何地方都可以访问到项目.但购买服务器是要收费的,这使得我十分香菇....但是还有办法的,在VMware虚拟机 ...

  4. 花生壳内网穿透:无需专线公网IP,安全高效远程数据采集

    随着信息技术发展和工业自动化水平的提高,各种现代化监测设备及数据采集器被广泛应用于水文水利.气象环保.工业控制等领域,用于户外.工业现场进行数据采集.存储和传输. 深圳某科技公司正是一家致力于提供工业 ...

  5. net项目使用花生壳,Cpolar进行内网穿透

    使用花生壳或Cpolar进行内网穿透 一.注册授权一个花生壳账号 二.添加花生壳配置 三.修改项目配置信息 四.以管理员身份打开vs 五.Cpolar内网穿透 一.注册授权一个花生壳账号 二.添加花生 ...

  6. 使用VNC软件与花生壳进行内网穿透实现在嵌入式平台中进行广域网下的远程控制

    在嵌入式平台中如何实现广域网下的远程登录控制? 文章目录 1 项目需要 2 解决方案 3 首先实现局域网下的VNC远程控制 4 总结 1 项目需要 在IM.X6q硬件平台,Linux4.1.15内核版 ...

  7. 内网穿透工具nps使用教程 - 来自内部交流群

    内网穿透工具nps使用教程.docx 内网穿透工具nps使用教程 感谢 感谢开源软件开发者,github链接https://github.com/cnlh/nps/ 感兴趣的去star下吧~ 视频教程 ...

  8. 教你十步实现内网穿透

    我是小康小白,一个平平无奇的Java小白.热爱有趣的文字,生活和远方. 内网穿透 由于某些词语嗯~~~你懂了,笔者换了一下,可能不太标准,希望见谅. 一,什么是内网穿透? 内网穿透简单来说就是将你的电 ...

  9. 内网穿透你真的了解吗?

    前言 内网穿透作为程序员常用的调试手段之一,我们可以通过在个人电脑上运行花生壳或者 frp 等方式,让他人访问我们本地启动的服务,而且这种访问可以不受局域网的限制,当我们使用ngrok,frp等开源框 ...

最新文章

  1. 3.11上午课程重点
  2. Citrix Port(常用端口)
  3. 单片机数据转换php,51单片机之数据转移指令MOV、MOVX、MOVC等
  4. k3 物料收发明细表sql_物料管理:班组长物料使用应知应会4件事
  5. [html] 字体图标加载出来成了小方块,是什么原因呢?如何解决?
  6. 000 SpringMVC介绍
  7. 路飞学城14天集训营作业2—三级菜单
  8. 性能测试工具AlldayTest 的测试方法及说明
  9. thinkphp 连接sql server
  10. 编译ROS-Academy-for-Beginners
  11. 爬虫库之BeautifulSoup学习(三)
  12. Amazon AWS创建Elastic Beanstalk,部署Tomcat,配置MySQL,发布Spring Boot应用
  13. 怎么样才可以?批量下载快手播主的全部视频?
  14. 数据库mysql去重_MySQL数据库去重 SQL解决
  15. 平板电脑android 管理软件,应用宝HD下载V5.2.0.142 安卓版-Android平板电脑(aPad)专用西西软件下载...
  16. 计算机论文英语单词,英语单词
  17. 一道智商测试题 月薪三万
  18. OpenGL,GLUT,FreeGLUT,GLFW,GLEW,GLAD,GL3W,GLAD,GLM,GLSL的区别详解
  19. 人工智能用你的照片合成舞蹈
  20. python循环体执行的次数与其他不同的是_下面的Python循环体的执行次数与其他不同的是()...

热门文章

  1. python发送短信验证码登录_python发送短信验证码
  2. String中的assign函数
  3. excel切片器_Excel切片器,让图表动起来
  4. 解构TypeScript中class
  5. 安卓 每日一题 2020年5-6月问题及答案
  6. Android studio运行出现Unable to determine application id: com.android.tools.idea.run.ApkProvisionExcepti
  7. Android APP如何简单快速实现控制硬件设备并实现APP签名
  8. tmux常用命令大全
  9. Docker 使用快速入门
  10. 批处理 检测U盘插入并自动备份文件