当前位置: 首页 > news >正文

ModBus TCP/RTU互转(主)(从)|| Modbus主动轮询下发的工业应用 || 基于智能网关的串口服务器进行Modbus数据收发的工业应用

目录

前言    

一、ModBus TCP/RTU互转(从)及应用||

1.1 举栗子

二、ModBus TCP/RTU互转(主)

       2.1 举栗子

三、ModBus 主动轮询

3.1 Modbus主动轮询原理

3.2 Modbus格式上传与下发

3.2.1.设置Modbus主动轮询指令

3.2.2 设置网络通道N1的参数

3.2.3 设置串口通道U1的参数

3.2.4 设置网络通道N2、N3的参数

3.2.5 打开两个Modbus Slave软件

3.2.6 打开一个网络调试助手

3.2.7.打开一个Modbus Poll

3.3 JSON格式上传与下发

3.3.1 数据上传

3.3.2 JSON格式的数据下发协议


前言    

        本文主要通过一款智能网关的串口服务器来进行工业modbus数据收发的应用

一、ModBus TCP/RTU互转(从)及应用||

        1.用户的串口设备是Modbus RTU从站,网络端的设备或组态软件是Modbus TCP主站, 则可以使用ModBus TCP/RTU互转(从)模式。 设备内部具有智能的消息排队机制,因此在该模式下,支持多个Modbus TCP主站同时 轮询Modbus RTU 从站设备。

        以设备的第一路串口PORT1(U1)为例,来说明ModBus TCP/RTU互转(从)模式的配 置步骤。设备支持自定义数据通道,本测试选择的数据通道为U1↔N1。

1.1 举栗子

        打开一个modbus Slave 软件,模拟用户的的Modbus RTU从站设备;打开4个或更多的 Modbus Poll 软件(配置参数完全一样),模拟用户Modbus TCP主站。实现多个主站同时轮 询一个从站的目的。

        配置完成之后,通信成功后的截图如所示。

二、ModBus TCP/RTU互转(主)

        若用户的串口设备是Modbus RTU主站,网络端的设备或组态软件是Modbus TCP从站 站,则可以使用ModBus TCP/RTU互转(主)模式。

        以设备的第一路串口PORT1(U1)为例,来说明ModBus TCP/RTU互转(主)模式的配 置步骤。设备支持自定义数据通道,本测试选择的数据通道为U1↔N1。

       2.1 举栗子

        打开一个modbus Poll 软件,模拟用户的的Modbus RTU主站设备;打开一个Modbus Slave 软件,模拟用户Modbus TCP从站。实现Modbus RTU主站查询Modbus TCP从站数据 的目的。

        配置完成之后,通信成功后的截图如所示。

三、ModBus 主动轮询

3.1 Modbus主动轮询原理

        启用Modbus主动轮询功能功能后,用户服务器只需要接收数据,不需要再下发查询指 令,可极大的缓解服务器的压力。 阿里云ALINK 启用该功能后,设备会按照用户事先设置的ModBus指令轮询串口设备,设备会将不同 指令返回的数据保存到缓存里。定时主动将缓存中的所有数据一次性上传到设置好的网络通道上。

轮询接口:轮询接口可以选择设备的8个串口通道PORT1~PORT2(U1~U8)、24 个网 络通道(N1~N24),每个轮询接口之间相互独立。可以轮询Modbus RTU 协议,也可以轮 询Modbus TCP 协议。

数据类型:支持BYTE、整型(16bit)、整形(32bit高在前)、整形(32bit高在后)、 浮点型(高在前)、浮点型(高在后)。用户根据实际情况选择合适的数据类型。

JSON名:JSON名支持自定义,最大支持32个字符。 kx+b:设备可对轮询的数据进行简单的线性计算。比如k设置为0.01,b设置为0,则 将数据缩小100倍后,上传到服务器。

紧急数据:对于非常重要且实时性要求比较高的寄存器数据,用户可将该数据设置为紧 急数据,并将变化上传条件设置为紧急数据变化上传,则该数据一旦变化,就会立即上传, 轮询间隔时间对此无效。设置0,则该数据为非紧急数据,设置1,则该数据为紧急数据。

轮询间隔:每个数据通道所有设置的指令,全部轮询完之后,等待该轮询间隔时间后, 才会进行下一轮的指令轮询。轮询间隔时间设置的越小,数据的实时性也就越高。 超时时间:当轮询指令发出后,从站设备没有应答,网关设备需要等待该超时时间后, 才会轮询下一条指令。

超时处理:当轮询指令发出后,没有收到从站设备的应答,此时上报的数据可以设置为 上一次轮询的数据(超时无变化)、设置为FF(超时清FF)、设置为00(超时清00)。

指令延时:同一个数据通道中,每条轮询指令之间的时间间隔。不同的数据通道之间是 独立的,可以并发轮询。 映射地址:将所有数据通道的轮询的从站地址,设置为该映射地址,默认128。当上传 格式选择Modbus RTU或Modbus TCP格式上传时,则会按映射地址上传。服务器下发设置 指令,也是按照映射地址下发。

缓存地址:缓存地址可以理解为用户串口设备的Modbus寄存器地址的映射地址。当上 传格式选择Modbus RTU或Modbus TCP格式上传时,该缓存地址即为上传的寄存器地址。 用户解析上传的数据时,可根据该缓存地址,来确定该数据来自那一条指令。

定时上传:数据上传服务器的时间间隔,单位毫秒,设置为0,则不上传。如设置5000ms, 则设备会每隔5秒将数据上传到指定的服务器。

变化上传:若某个轮询数据对用户比较重要,可将该数据设置为紧急数据,并启用变化 上传,这样网关设备会将本次轮询的数据与上一次的数据做比较,若有变化,则立即上传服 务器,不需等待定时上传设置的时间间隔。

上传格式:数据上传格式支持Modbus RTU、Modbus TCP、JSON带设备ID、JSON自定 义、阿里云ALINK等。

JSON 自定义格式说明: "id":%id:设备的唯一标识符,可在配置软件中的设备信息中查看,适用于基于设备识 别的应用。 "imei":%imei:设备内的4G 模块的唯一识别码。 "iccid":%iccid :SIM 卡的唯一识别码,适用于基于SIM卡识别的应用。 "time":%t:时间戳。 %d:轮询的数据。

如设置为:{"id":%id,"imei":%imei,"iccid":%iccid,"time":%t,%d} 则上报的数据为: {"id":e461211757372e32,"imei":,"iccid":,"time":2022-03-0317:13:15,"k0":0,"k1":0}

        数据上传到:可将数据上传到多个网络通道或串口通道,通过配置软件勾选即可。

3.2 Modbus格式上传与下发

        用modbus Slave 模拟从站设备,网络调试助手和Modbus Poll模拟主站或服务器。 本次实验实现效果:网关设备主动轮询modbus从站数据(U1通道和N1通道),并将数据 上传到主站或服务器(N2通道和N3通道)。同时主站或服务器也可向从站写数据。

        轮询数据通道选择N1:向设备的网络通道N1发送Modbus TCP轮询指令; 映射地址:默认128,将U1、N1通道上的从站地址全部映射为128。 数据上传到:勾选N2、N3,将轮询应答数据上传到网络通道N2、N3。

3.2.1.设置Modbus主动轮询指令

        轮询数据通道选择U1:向设备的第一路串口PORT1发送Modbus RTU轮询指令;

        轮询数据通道选择N1:向设备的网络通道N1发送Modbus TCP轮询指令;

        映射地址:默认128,将U1、N1通道上的从站地址全部映射为128。

        数据上传到:勾选N2、N3,将轮询应答数据上传到网络通道N2、N3。


       

3.2.2 设置网络通道N1的参数

        与网络通道N1相连接的设备作为Modbus TCP从站,因此网关设备的工作模式设置为 TCP CLIENT,目标 IP 及端口号即为从站设备的IP及本地端口号。

3.2.3 设置串口通道U1的参数

        确定串口通道U1即为设备的第一路串口PORT1,通过USB转RS485或RS232线连接电脑。 U1 参数默认即可(9600,8,N,1)。

3.2.4 设置网络通道N2、N3的参数

        网络通道N2、N3作为轮询数据的上传通道,本次举例采用设备默认参数: 网络通道N2:TCP SERVER模式,IP为192.168.1.253,端口号为1031 网络通道N3:TCP SERVER模式,IP为192.168.1.253,端口号为1032

3.2.5 打开两个Modbus Slave软件

        打开两个Modbus Slave软件,分别模拟Modbus RTU从站(与串口通道U1通信)、Modbus TCP 从站(与网络通道N1通信)。

3.2.6 打开一个网络调试助手

         模拟modbus TCP从站设备 打开一个网络调试助手,连接设备的网络通道N2,在网络调试助手中就可以接收到主 动轮询的数据。

3.2.7.打开一个Modbus Poll

        打开一个Modbus Poll,模拟Modbus TCP 主站,连接设备的网络通道N3(192.168.1.253: 1032)。连接之后即可接收主动轮询的数据。

        通过以上配置之后,Modbus主站设备就可以对从站进行读写操作了。

3.3 JSON格式上传与下发

3.3.1 数据上传

        在3.2的基础上,将设备modbus主动轮询的上报格式设置为JSON格式上传。网络 调试助手不要16进制显示,这样U1、N1通道的Modbus从站数据就会转成JSON格式向网 络通道N2、N3上发送。

3.3.2 JSON格式的数据下发协议

        若用户需要对用户的串口设备进行写操作,如写线圈、写寄存器等,用户的服务器可按 照网关设备的JSON格式的数据下发协议格式,向网关设备下发数据,网关设备收到服务器 的下发数据后,会将解析后的数据发送到串口上;串口设备的应答数据,网关设备会转换成 JSON 格式上传给服务器。

        JSON 格式的数据下发协议如下: 服务器下发格式: {"mb":"010600000008","sn":1,"ack":0,"crc":0,"uart":0} 网关设备应答数据格式: {"retmb":"010600000008880c","sn":1,"status":"ok"}

说明:

mb: 010600000008,是十六进制ascii格式,比如ff 就是255。网关设备收到服务器的 下发数据后,会将此处的ascii格式的数据转换为对应的十六进制数据,然后转发到串口上。

sn: 数据包的顺序,整数。网关设备收到服务器的下发数据中的 sn 值是多少,网关设 备应答给服务器的数据包中的sn值就是多少。用户可用该参数来识别网关设备的应答数据 与服务器请求数据的对应关系。

ack: 是否需要网关设备应答数据,0:不将应答数据上传到服务器;1:将应答数据上 传到服务器。非必须,若没有则按ack 等于1 处理。

crc: “mb”字段中的数据是否包含crc校验。1:mb字段不包含crc校验值,网关设备 会自动计算crc值;0:mb字段包含crc校验值,网关设备则不再会计算crc值。非必须。若没有则按crc等于0 处理。

uart:指定往哪一路串口(PORT)上发,0~23分别代表第1~24路串口(PORT)。非必 须,若没有则按uart 等于0 处理,即向第一路串口上下发。

若想向网络通道上发数据,则 可以用net替代uart即可,如:{"mb":"010300000001","sn":1,"ack":0,"crc":0,"net":0}。 retmb: 010300000001,是十六进制ascii 格式,比如ff 就是255。网关设备收到串口设 备的应答数据后,会将串口设备应答的十六进制格式的数据转换为对应的ascii格式的数据, 然后转发到服务器上。 status: timeout:超时;ok:正常

相关文章:

ModBus TCP/RTU互转(主)(从)|| Modbus主动轮询下发的工业应用 || 基于智能网关的串口服务器进行Modbus数据收发的工业应用

目录 前言 一、ModBus TCP/RTU互转(从)及应用|| 1.1 举栗子 二、ModBus TCP/RTU互转(主) 2.1 举栗子 三、ModBus 主动轮询 3.1 Modbus主动轮询原理 3.2 Modbus格式上传与下发 3.2.1.设置Modbus主动轮询指令 3.2.2 设…...

Linux top 命令详解:从入门到高级用法

Linux top 命令详解:从入门到高级用法 在 Linux 系统中,top 是一个强大的实时监控工具,用于查看系统资源使用情况和进程状态。它可以帮助你快速了解 CPU、内存、负载等信息,是系统管理员和开发者的日常利器。本文将从基本用法开始…...

【网络协议】基于UDP的可靠协议:KCP

TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利用带宽。而 KCP是为流速设计的(单个数据包从一端发送到一端需要多少时间),以10%-20%带宽浪费的代价换取了比 TCP快30%-40%的传输速度。TCP信…...

【Docker入门】构建推送第一个Docker映像

【Docker入门】构建推送第一个Docker映像 Build and Push the First Docker Image By JacksonML Docker的容器(Container)映像是轻量级的可执行独立包,包含代码、运行时、库、环境变量以及配置文件,它对于运行软件至关重要。注册表可在团队间分享映像。…...

Python----计算机视觉处理(Opencv:图像颜色替换)

一、开运算 开运算就是对图像先进行腐蚀操作, 然后进行膨胀操作。开运算可以去除二值化图中的小的噪点,并分离相连的物体。 其主要目的就是消除那些小白点 在开运算组件中,有一个叫做kernel的参数,指的是核的大小,通常…...

搭建自己的OCR服务

网上看到相关文章,这里整理记录一下,仅供学习。 搭建自己的OCR服务,第一步:选择合适的开源OCR项目 - PandaCode辉 - 博客园 一、OCR是什么? 光学字符识别(Optical Character Recognition, OCR&#xff09…...

vue:组件的使用

Vue:组件的使用 1、什么是组件 1.1、传统方式开发的应用 一个网页通常包括三部分:结构(HTML)、样式(CSS)、交互(JavaScript)。在传统开发模式下,随着项目规模的增大&a…...

leetcode日记(105)买卖股票的最佳时机Ⅱ

原本以为是一个很难想的动态规划&#xff0c;没想到是最简单的贪心…… 如果实在想不出就画个折线图&#xff0c;只买上涨的就行了&#xff0c;所有上涨的段都取到。 真的没想到会这么简单…… class Solution { public:int maxProfit(vector<int>& prices) {int …...

7种数据结构

7种数据结构 顺序表sqlite.hseqlite.c 单链表linklist.clinklist.h 双链表doulinklist.cdoulinklist.h 链式栈linkstack.clinkstack.h 队列SeqQueue.cSeqQueue.h 树tree.c 哈希表hash.c 顺序表 sqlite.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ typedef struct person…...

论文阅读:Deep Hybrid Camera Deblurring for Smartphone Cameras

今天介绍一篇 ACM SIGGRAPH 2024 的文章&#xff0c;关于手机影像中的去模糊的文章。 Deep Hybrid Camera Deblurring for Smartphone Cameras Abstract 手机摄像头尽管取得了显著的进步&#xff0c;但由于传感器和镜头较为紧凑&#xff0c;在低光环境下的成像仍存在困难&am…...

Redis 三主三从集群部署的完整方案

一、架构设计原理‌ 分布式数据分片 哈希槽机制‌&#xff1a;Redis Cluster 将数据划分为 16384 个槽位&#xff0c;每个主节点负责部分槽位&#xff08;如主节点1管理槽0-5460&#xff0c;主节点2管理5461-10922等&#xff09;。 自动负载均衡‌&#xff1a;数据按哈希值分配…...

C++项目:高并发内存池_上

目录 1. 项目介绍 2. 内存池概念 2.1 池化技术 2.2 内存池和内存碎片 2.3 细看malloc 3. 定长内存池的实现 ObjectPool.hpp 4. 高并发内存池框架 5. thread cache测试 5.1 thread cache框架 5.2 ConcurrentAlloc.hpp 6. central cache测试 6.1 central cache框架 …...

『Plotly实战指南』--折线图绘制基础篇

在数据分析的世界中&#xff0c;折线图是一种不可或缺的可视化工具。 它能够清晰地展示数据随时间或其他变量的变化趋势&#xff0c;帮助我们快速发现数据中的模式、趋势和异常。 无论是金融市场分析、气象数据监测&#xff0c;还是业务增长趋势预测&#xff0c;折线图都能以直…...

【css酷炫效果】纯CSS实现波浪形分割线

【css酷炫效果】纯CSS实现波浪形分割线 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;https://download.csdn.net/download/u011561335/90492023 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&…...

【资料分享】全志科技T113-i全国产(1.2GHz双核A7 RISC-V)工业核心板规格书

核心板简介 创龙科技SOM-TLT113 是一款基于全志科技T113-i 双核ARM Cortex-A7 玄铁C906 RISC-V HiFi4 DSP 异构多核处理器设计的全国产工业核心板&#xff0c;ARM Cortex-A7 处理单元主频高达1.2GHz。核心板 CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业级方案&…...

Coco AI 智能检索 Hugo Blog 集成指南

在此前的文章中&#xff0c;我们介绍了如何使用 Coco Server 连接 Notion&#xff0c;实现智能内容检索。本次&#xff0c;我们将进一步探索如何在 Coco Server 最新版本 中集成 Hugo Site&#xff0c;以便对 Hugo 站点 进行高效检索。 Coco Server 部署方式 要在本地或服务器…...

【MySQL数据库】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法

在DQL的基础查询中&#xff0c;我们已经学过了多表查询的一种&#xff1a;联合查询&#xff08;union&#xff09;。本文我们将系统的讲解多表查询。 笛卡尔积现象 首先&#xff0c;我们想要查询emp表和stu表两个表&#xff0c;按照我们之前的知识栈&#xff0c;我们直接使用…...

jmeter将返回的数据写入csv文件

举例说明&#xff0c;我需要接口返回体中的exampleid与todoid的数据信息&#xff08;使用边界提取器先将其提取&#xff09;&#xff0c;并将其写入csv文件进行保存 使用后置处理器BeanShell 脚本实例如下 import java.io.*;// 设置要写入的文件路径 String filePath "…...

AI如何在财务工作中提升效率的一些看法

文章目录 1. 自动化重复性任务2. 财务预测与分析3. 欺诈检测与风险管理4. 智能报表与决策支持5. 税务管理优化6. 提升团队协作与客户体验未来的趋势与挑战结论 随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;其正全方位地革新各行各业的运作模式&#xff0…...

OpenCV入门指南:从安装到基本操作

引言 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它包含了数百种计算机视觉算法&#xff0c;广泛应用于图像处理、视频分析、物体检测、人脸识别等领域。本文将带你从安装OpenCV开始&#xff0c;逐步了解其基…...

简单以太网配置

display arp //查看路由器mac地址 交换机配置命令&#xff1a; system-view // 从用户视图进入系统视图 dis mac-address //查看mac地址表 路由器配置命令: system-view // 从用户视图进入系统视图 int GigabitEthernet 0/0/0 //进入G口 0/0/0 进入之后配置网关: ip addre…...

蓝桥杯嵌入式组第十四届省赛题目解析+STM32G431RBT6实现源码

文章目录 1.题目解析1.1 分而治之&#xff0c;藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 LED模块1.3.3 LCD模块1.3.4 TIM模块1.3.4.1 频率变化处理1.3.4.1 占空比计算 1.3.5 ADC模块 2.源码2.1cubemx配置3.第十四届题目 前言&#xff1a;STM32G431RBT6实现嵌入…...

让双向链表不在云里雾里

又来博客留下我的足迹了&#xff0c;哈哈哈&#xff0c;这次是对于双向链表的理解 目录 创建双向链表&#xff1a; 申请结点&#xff1a; 双向链表初始化&#xff1a; 双向链表插入结点&#xff1a; 双向链表删除结点&#xff1a; 双向链表的打印&#xff1a; 双向链表…...

基于django+vue的购物商城系统

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.8数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统首页 热卖商品 优惠资讯 个人中心 后台登录 管理员功能界面 用户管理 商品分类管理…...

在Vue3中使用Echarts的示例

1.常用-引用ts文件方式 1.1 导出ts文件-一个简单的柱状图 export const baseBarChart (xdata: string[], data: number[][], legendData: string[]) > {if (data.length 0) {return noData;}// 定义颜色数组const color [#00CCCC,#FF9900,#1677DC,#FF6666,#B366FF,#666…...

TCP协议的多线程应用、多线程下的网络编程

DAY13.2 Java核心基础 多线程下的网络编程 基于单点连接的方式&#xff0c;一个服务端对应一个客户端&#xff0c;实际运行环境中是一个服务端需要对应多个客户端 创建ServerSocketNable类&#xff0c;多线程接收socket对象 public class ServerSocketNable implements Run…...

每日学习Java之一万个为什么(待补充)

Git分支操作 git branch 分支名 git branch -v git checkout -b 分支名 git checkout 分支名 git merge 分支名 git branch -d | -D 分支名Git冲突 git同名文件合并的最基本单位是行。同名文件同一行不同就会发生冲突。 解决办法&#xff1a;及时沟通&#xff0c;手动更改&…...

设计C语言的单片机接口

一、主要内容 (一)控制引脚 1、定义管脚 // 定义管脚的结构体 struct pin{ int id; // 管脚编号 int mode; // 模式&#xff0c;输入为1&#xff0c;输出为0 int pull; // 输入电阻 int driver; // 功率 } 2、输出电平 语法&#xff1a; void pin_output(s…...

博客迁移----宝塔面板一键迁移遇到问题

前景 阿里云轻量级服务器到期了&#xff0c;又免费领了个ESC&#xff0c; 安转了宝塔面板。现在需要迁移数据&#xff0c;使用宝塔面板一键迁移功能&#xff0c;完成了数据的迁移&#xff0c;改了域名的解析&#xff0c;现在进入博客是显示502 bad grateway 宝塔搬家参考链接…...

抽象工厂模式 (Abstract Factory Pattern)

抽象工厂模式 (Abstract Factory Pattern) 是一种创建型设计模式&#xff0c;它提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。 一、基础 1. 意图 提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。 2. …...

LeetCode 第14~16题

目录 LeetCode 第14题&#xff1a;最长公共前缀 LeetCode 第15题&#xff1a;三数之和 LeetCode 第16题&#xff1a;最接近的三数之和 LeetCode 第14题&#xff1a;最长公共前缀 题目描述 编写一个函数来查找字符数组中的最长公共前缀。如果不存在公共前缀&#xff0c;返回字符…...

深入了解Linux —— git三板斧

版本控制器git 为了我们方便管理不同版本的文件&#xff0c;就有了版本控制器&#xff1b; 所谓的版本控制器&#xff0c;就是能够了解到一个文件的历史记录&#xff08;修改记录&#xff09;&#xff1b;简单来说就是记录每一次的改动和版本迭代的一个管理系统&#xff0c;同…...

再学:abi编码 地址类型与底层调用

目录 1.内置全局变量及函数 2.abi 3.地址类型 4.transfer 1.内置全局变量及函数 2.abi data就是abi编码 abi描述&#xff1a;以json格式表明有什么方法 3.地址类型 4.transfer x.transfer:合约转给x call 和 delegatecall 是 Solidity 中用于底层合约调用的函数&#xff0…...

Redis的消息队列是怎么实现的

Redis 本身并不是一个专门的消息队列系统,但它的 List、Pub/Sub 和 Stream 数据结构可以用来实现消息队列的功能。以下是 Redis 实现消息队列的几种常见方式: 1. 基于 List 实现消息队列 Redis 的 List 是一个双向链表,支持在头部和尾部进行高效的插入和删除操作,非常适合…...

图论入门【数据结构基础】:什么是树?如何表示树?

图论是计算机科学和数学中的一个重要分支&#xff0c;研究图的结构及其性质。之前我们介绍了图的基本概念和表示&#xff1a;图论入门【数据结构基础】&#xff1a;什么是图&#xff1f;如何表示图&#xff1f;&#xff0c;本文将介绍树的基本概念、性质及其在计算机科学中的应…...

微信小程序订阅消息发送消息,点击消息进入小程序页面

1、在小程序官网订阅消息选用或创建消息模板获取模板ID可多个 如图&#xff1a; 2、微信小程序前端页面发送请求订阅权限 请求模板id的权限可以是一个可以是多个&#xff0c;用户同意订阅&#xff0c;获取code传递给后端——后端拿到code生成唯一的openid用于发送订阅消息 注…...

基于小参数量大语言模型(Small Language Models) ---- 在制造业落地降本增效应用:可行性研究初探

文章大纲 一、引言二、小参数量模型概述基本技术要求小参数量大语言模型在制造业场景中的适用性分析(一)排产优化(二)错误根因分析三、制造业小参数量大语言模型开源解决方案简介Bert 系列 模型Google微软MetaMistral AI国产解决方案四、技术实现方案进行逻辑(一)模型选择…...

pandas中excel自定义单元格颜色

writerpd.ExcelWriter(filepathf05教师固定学生占比1月{today}.xlsx,engineopenpyxl) df.to_excel(writer,sheet_name明细) piv1.to_excel(writer,sheet_name1月分布) wswriter.book.create_sheet(口径) ws.cell(1,1).value综合占比&#xff1a; ws.cell(1,2).value固定学生占比…...

MySQL事务:确保数据一致性的关键机制

目录 1. 为什么需要事务&#xff1f; 2. 什么是事务&#xff1f; 3. 事务的四大特性 3.1 原子性&#xff08;Atomicity&#xff09; 3.2 一致性&#xff08;Consistency&#xff09; 3.3 隔离性&#xff08;Isolation&#xff09; 3.4 持久性&#xff08;Durability&…...

图论入门【数据结构基础】:什么是图?如何表示图?

图&#xff08;Graph&#xff09; 是一种非线性数据结构&#xff0c;用于表示对象之间的关系。图由 顶点&#xff08;Vertex&#xff09; 和 边&#xff08;Edge&#xff09; 组成&#xff0c;其中顶点表示对象&#xff0c;边表示对象之间的关系。图广泛应用于计算机科学、数学…...

SpringBoot中使用AJ-Captcha实现行为验证码(滑动拼图、点选文字)

简介 AJ-Captcha行为验证码&#xff0c;包含滑动拼图、文字点选两种方式&#xff0c;UI支持弹出和嵌入两种方式。后端提供Java、Golang实现&#xff0c;前端提供了php、angular、html、vue、uni-app、flutter、android、ios等代码示例。点击前往AJ-Captcha代码仓库 引入Maven…...

【国际研讨会】2025年3-5月通信、算法、电气工程、自动化等领域国际学术会议征稿开启!大型学术盛宴!

【国际研讨会】2025年3-5月通信、算法、电气工程、自动化等领域国际学术会议征稿开启&#xff01;大型学术盛宴&#xff01; 【国际研讨会】2025年3-5月通信、算法、电气工程、自动化等领域国际学术会议征稿开启&#xff01;大型学术盛宴&#xff01; 文章目录 【国际研讨会】…...

AI战略家:X厂三年复盘大纲——业务与组织双视角深度拆解

一、业务负责人视角&#xff1a;从0到1与从1到100的核心能力模型 &#xff08;一&#xff09;阶段能力要求与问题预判 1. 从0到1&#xff1a;破局能力 核心能力升级框架&#xff1a; 需求洞察三阶漏斗&#xff1a; 行业需求池&#xff1a;广泛收集行业内的各种需求&#xff…...

LuaJIT 学习(4)—— FFI 语义

文章目录 C Language SupportC Type Conversion RulesConversions from C types to Lua objects例子&#xff1a;访问结构体成员 Conversions from Lua objects to C typesConversions between C types例子&#xff1a;修改结构体成员 Conversions for vararg C function argum…...

剑指 Offer II 078. 合并排序链表

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20078.%20%E5%90%88%E5%B9%B6%E6%8E%92%E5%BA%8F%E9%93%BE%E8%A1%A8/README.md 剑指 Offer II 078. 合并排序链表 题目描述 给定一个链表数组&#xff0c;每个链…...

go回调函数的使用

在Go语言中&#xff0c;回调函数可以有参数&#xff0c;也可以没有参数。它们的定义和使用方式略有不同&#xff0c;但本质上都是将函数作为参数传递给另一个函数&#xff0c;并在适当的时候调用它。以下是带参数和不带参数的回调函数的示例和说明。 1. 不带参数的回调函数 不…...

CBNet:一种用于目标检测的复合骨干网架构之论文阅读

摘要 现代顶级性能的目标检测器在很大程度上依赖于骨干网络&#xff0c;而骨干网络的进步通过探索更高效的网络结构带来了持续的性能提升。本文提出了一种新颖且灵活的骨干框架——CBNet&#xff0c;该框架利用现有的开源预训练骨干网络&#xff0c;在预训练-微调范式下构建高…...

k8s中PAUSE容器与init容器比较 local卷与hostpath卷比较

目录 一、PAUSE容器与INIT容器比较 1. Pause 容器 作用 特点 示例 2. Init 容器 作用 特点 示例 3. Pause 容器 vs Init 容器 4. 总结 这两个哪个先启动呢&#xff1f; 详细启动顺序 为什么 Pause 容器最先启动&#xff1f; 示例 总结 二、local卷与hostpath卷…...

施耐德PLC仿真软件Modbus tcp通讯测试

安装仿真软件&#xff1a;EcoStruxure™ Control Expert - PLC 仿真器 下载地址&#xff1a;https://www.schneider-electric.cn/zh/download/document/EIO0000001719/ 配置CPU&#xff1a; 切换至仿真模式&#xff0c;系统托盘中出现仿真器图标 新建变量test&#xff0c;地址…...

TCP、UDP协议的应用、ServerSocket和Socket、DatagramSocket和DatagramPacket

DAY13.1 Java核心基础 TCP协议 TCP 协议是面向连接的运算层协议&#xff0c;比较复杂&#xff0c;应用程序在使用TCP协议之前必须建立连接&#xff0c;才能传输数据&#xff0c;数据传输完毕之后需要释放连接 就好比现实生活中的打电话&#xff0c;首先确保电话打通了才能进…...