测试程序包含PLC和C#程序,微信小程序等完整代码已打包上传
万物互联、工业4.0-智能工厂简单的学习项目
学习项目概述
1.PLC
设备组态
程序库数据库结构设计
OPC UA服务开启
仿真搭建
2.OPC 客户端
OPC UA 通信连接
数据采集
数据上传到微信云数据库
3.微信小程序
页面设计
数据库通信
测试效果见图片
视频演示地址
链接:https://pan.baidu.com/s/1dmJlvda2noMULl2g6e2c-g
提取码:gajc
一.PLC端
1.PLC 采用S71500,模拟器为S7-PLCSIM Advanced V3.0
2.为了方便数据数据采集,数据块一定要设计合理,尽量模块化
3.西门子1500PLC配置OPC相当简单,选择好授权激活OPC服务器功能即可,具体几个容易出错的小细节见图片
4.编程软件 博途15.1
尽量启用访客认证,这样方便测试
仿真时一定要选上支持仿真的功能
二.C#程序
1.引用OPC官方的Opc.Ua.Client.dll,Opc.Ua.Core.dll
2.引用开源的OPCHelper(编译后引用)
3.读取,订阅都比较容易,写数值时比较麻烦要判断数值类型,我写入数值前先读取该节点的数值类型,以此类型写入
4.HTTP POST方式 修改微信云数据库
5.编译器采用VS2019
云数据库通信部分 HTTP POST 注意字符串格式、一定不能错
/// <summary>
/// 更新数据
/// </summary>
/// <param name="queryString">形如: $"{{"env":"小程序环境id", "query": "db.collecti("数据集合名称").where({{集合中字段:"集合中字段值"}}).update({data:{集合中字段:"集合中字段值"})"</param>
/// <returns></returns>
//public static string GetData(string queryString)
public static string UpData(string name, string value)
{
//string accessToken = GetAccessToken();
string accessTokenqueryString = $"{{"env":"zunzhi-0goxnji212f917", "query": "db.collection("Test").doc("TestByClient")" + ".update({data:" + "{" + name + ":" + value + "}})"}";
HttpWebResponse httpWebResponse = PostRequest("https://api.weixin.qq.com/tcb/databaseupdate?access_token=" + accessToken, accessTokenqueryString);
string data = HttpWebResponseToString(httpWebResponse);
return data;
}
三.微信小程序
小程序比较简单,官方的帮助文档很详细,大家照着格式来就好了
模板采用官方的云模板,和云函数
1.页面的简单设计
2.数据库通信部分
完整项目打包地址
链接:https://pan.baidu.com/s/1FfhxhdptiIzbU9cyaaU6qQ
提取码:u6cm
微信小程序源码
链接:https://pan.baidu.com/s/1Plt_TLu8tsewOgCFYnTa8w
提取码:625u
PLC和OPC客户端更新版源码
链接:https://pan.baidu.com/s/1JVs62BbyzZF2m-bXKtzwEw
提取码:on73