作者 | 主题 |
---|---|
zunzhi 侠圣 经验值:2748 发帖数:120 精华帖:5 |
楼主 2022-04-03 18:40:34
主题:OPC UA通信测试(增加云数据库、微信小程序等) 测试程序包含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
努力工作,好好学习!
|