直播课堂
HOME
直播课堂
正文内容
plc编程手机app 手机app控制PLC方案-仅限局域网
发布时间 : 2024-11-29
作者 : 小编
访问数量 : 23
扫码分享至微信

手机app控制PLC方案-仅限局域网

前面有视频讲到了用浏览器可以监控PLC的变量的方法,如下图所示,将PLC的IP地址192.168.10.6映射到了一个外网地址,随意一台上网的手机或者电脑都可以查看对应变量表的数值。

后面一直琢磨怎么能让手机能够控制PLC呢?web 服务器可以自定义网页,但是需要自己开发网页,我不会啊,然后就想到了用MIT APP开发APP软件,具体的使用编程有兴趣可以去试试,拖拽式,很适合没有C语言基础的小白,我不细讲了。

受限于该开发平台限制,合适使用的通讯方式只有TCP连接,PLC做服务器,app做客户端。

PLC的配置如下,开放2001端口连接

app的客户端配置

然后就是数据处理,首先是浮点数处理,因为这个开发平台是不能处理浮点数的,也没有各种进制转换,所以只有PLC那边将所用数据转成字符串形式发送,所以它只适合做简单控制处理。

如上图,将压力28.41转成字符传2841

将Q 点状态转成ON或者OFF,(这里0和1也行),后续在app处理

如下图,就是app 收到的字符传,收到内容在app后台编程截取字符加上小数点就行

部分代码如下,截取97和99开始的各两个字符,加上小数点显示即可

就把2487转成了24.87

下图就是输入输出的转态和控制开关,绿色标识为ON中,蓝色标识OFF中,也是app 接收到ON,OFF进行编程处理

开关量状态部分代码如下,接收到OFF设置背景延时为蓝,否则背景颜色为绿,(其实发送01好像节省PLC地址,我懒得改了。)

处理完读取然后是控制指令,需要如果需要设置浮点数的话,需要在app 设置字符串,然后PLC转换成浮点数,我就没搞了,浪费时间,讲下开关量控制吧。

我给每个开关设置预留一个字符位置,点击就取反,总共需要10个控制点位+一个总开关

比如SV4106对应第五个字符,SV4203对应的第8个字符位置

点击一下就取反,然后刷新数据发送

将起始符+10个开关状态+总开关状态合并合成一串字符,发送到PLC

PLC收到就是&B开头的一串字符串,如下,然后进行数据处理

PLC如下处理,手动下,链接状态正常,确认开始符后,对应字符=1就执行输出

通过以上方式就实现手机APP控制PLC,缺点是数据处理麻烦,不适合需要设置比较多参数的项目,最适合手动调试一些开关量。

还有个缺点是tcp 客户端通讯是能适用于局域网,外网是不支持的,后续研究下外网吧。

手机APP和PLC通讯-外网方式

上篇文章提到手机APP通过TCP局域网的方式和PLC通讯,就在考虑外网如何实现。

查询了很多资料,主要是通过物联网协议MQTT通讯实现。

一,实现外网控制的几种方式

1,西门子S7-1200或者1500系列PLC本身支持MQTT协议的

PLC连接外网的情况下,通过对应库做MQTT客户端连接到服务器,手机APP再连接MQTT服务器,实现数据交换,这个我摸索了好久,没摸索明白,就放弃了。

2,对于不支持MQTT协议的PLC可以通过物联网网关实现,购买一个有人或者巨控之类的网关,这个方式相对简单,手机端和云端APP都是厂家开发好的,缺点是价格贵些。

3,第三种方式就我用的方式,简单描述就是一台可以上网的电脑,一边连着PLC,一边做MQTT客户端,和手机APP连到通一个MQTT服务器进行通讯,如下图

手机APP使用MIT APP平台开发,上文有介绍,各位可以看看。

而我用云服务器代替了电脑,想练习的朋友不用云服务器,用普通电脑也行的,PLC连到了蒲公英路由器,通过蒲公英的异地组网功能实现云服务和PLC连接,如下图

云主机(随意一台电脑也行,一下用电脑代替),怎样接PLC的数据发送到手机呢?这里只要用到一个工具 Node-red,如下

它是完全免费的,可以一边读写PLC数据一边订阅和发布MQTT消息,等同于免费物联网网关。

二,简单程序编写

1,node-red和PLC通讯

node-red怎么安装各位自己搜索就好,或者找我要链接,这里不多讲啦,先讲Node-red怎么和PLC通讯,安装完毕后直接浏览器输入 HTTP://localhost:1880,或者127.0.0.1:1880进入编程界面,刚安装的是没有和西门子PLC通讯的插件的

如上图,设置进入控制板,然后搜索s7,添加S7的PLC的插件,安装完毕就有读取和输出的图标,拖出来用就行。

下面是配置PLC的通讯参数

需要读取的点

地址格式参考这个网站 https://www.mqtt.cn/1245.html

下面是写入PLC的数据,通讯参数和读取的一样

地址是一串字符串,处理方式和上文TCP局域网的处理一样。

发给PLC,PLC收到的数据是

输出为1的位置就表示对应的Q输出

2.node-red和MQTT服务器的通讯

MQTT服务器用的这个免费的

地址和端口设置好,主题设置为hyxhyx

这样,node-red就会将我需要的数据按周期发送到MQTT服务器,IOData就是对应Q的输出状态,1标识ON中,0标识OFF 中

下面是用MQTT客户端测试数据是否正常发出,如下图订阅的主题是hyxhyx,能正常收到数据

下图是订阅一个主题为"hyxhyx1'的消息,

是将手机APP发送的数据传到MQTT服务器,MQTT服务再给node-red,node-red将数据写入PLC的地址 DB99里面的0开始的地址,然后PLC处理数据

3,PLC和手机APP处理

上面大家也看明白了,node-red,MQTT服务器客户端,都是中转,为了让APP能和PLC能进行数据交换,下面简单介绍PLC数据处理。

PLC传输到APP

浮点数数据都是转字符的,开关也是字符表,0表示OFF中,1表示ON中

下面是PLC收到的数据,一大串字符,比如PT4101的压力是28.387

如下图,搜索整个字符串PT4101的位置,然后提取出来,

开关量数据一样

这是读取的PLC数据,

下面看看控制Q点开关如何编写

点击取反

所有内容合成一串

合成一串后以"hyxhyx1"主题发布

订阅主图hyxhyx1测试

PLC收到的内容

程序判断是字符1输出

以上是简单的控制,实际使用肯定需要加一些保护,比如心跳检测,APP是否和PLC通讯上等考虑。

相关问答

plc的TERM什么意思_作业帮

[最佳回答]TERM模式保持PLC原有的运行状态,以前是不在TERM模式不能通过连接的PC机更改PLC的运行状态,也就是说现在的PLC没有这个TERM,只有RUN和STOP.不过PLC处...

visionpro可以用什么app?

例如,您可以使用CognexExplorer软件来查看和管理VisionPro系统和图像库。CognexDesigner软件可用于创建机器视觉应用程序,它有一个GUI,可以轻松设置常见机...

尊龙新版手机app下载(中国)官方网站·IOS/APP下载/APP_微思

🚈尊龙新版手机app下载🉑支持:64/128bit🖤是一款简单易用的下载工具,适用于mac...Aprogrammablelogiccontroller(PLC),orprogram...

主程序和子程序是怎么上传到plc的?

主程序和子程序通常通过以下方法上传到PLC:1.使用PLC编程软件:PLC编程软件通常提供了上传和下载程序的功能,并通过连接电缆将PLC与计算机连接在一起。用户可...

Arduino可不可以记录plc产生的数据并传给手机app?

可以实现。这里的核心是设计并实现数据通讯的方式,1.电动机的自动控制是由PLC完成的,所有的数据都在PLC中。2.想通过手机APP查看或调整PLC数据库中的数据,...

西门子plc怎样跟手机通信?

西门子PLC可以通过模块/硬件/软件等连接方式,通过手机或移动设备与其连接通信。比如西门子的S7-1200CPU,它可以通过以太网/WIFI和GPRS模块连接手机,或者使用...

爱赢app下载安装(官方)最新IOS//手机版APP下载_微思

🤒爱赢app下载安装💋支持:64/128bit🔝是芒果TV旗下的一款基于Macos平台使用的视频播放器,专门提供湖南卫视丰富内容的在线点播,并支持主流音视频格式的本地播放...

PLC程序中,手动程序和自动程序必须()A、自锁B、互锁C、保持...

[最佳回答]PLC程序中,手动程序和自动程序必须(B)题目做过,是正确的!请予采纳

怎么检测plc编程?

下载并安装PLC学习应用软件FX-TRN-BEG-CL-feI,进行程序输入,使用输入按钮FBI,输出显示灯YO,运行自己的编制程序,仿真并验证程序所实现的控制功能:1)按下FBI...

新型PLC控制系统包括哪些?

新型PLC控制系统主要包括以下几个方面:硬件系统:包括中央处理器、存储器、输入输出接口、电源等。其中,中央处理器是PLC控制系统的核心,负责执行用户程序和控...

 产品方案  马努特-波尔 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部