Python与PLC无缝对接实战(OPC UA asyncua 1.0深度解析)

第一章:Python与PLC通信的工业自动化背景

在现代工业自动化系统中,可编程逻辑控制器(PLC)作为核心控制设备,广泛应用于制造、能源、交通等领域。随着信息技术的发展,传统封闭式控制系统逐渐向开放、灵活的架构演进,Python凭借其简洁语法和强大的生态库,成为连接PLC与上层管理系统的重要桥梁。

工业自动化的演进趋势

  • 从集中控制到分布式系统的转变提升了系统的灵活性与可维护性
  • 工业物联网(IIoT)推动设备间数据互联,要求更高层次的数据集成能力
  • 边缘计算与云计算结合,使实时数据分析和远程监控成为可能

Python在工业通信中的优势

Python通过多种协议实现与PLC的数据交互,例如Modbus TCP、OPC UA等。以Modbus为例,使用pyModbus库可以快速建立连接:
# 导入客户端库
from pymodbus.client import ModbusTcpClient

# 创建连接对象
client = ModbusTcpClient('192.168.1.10', port=502)

# 连接PLC
client.connect()

# 读取保持寄存器(地址40001)
result = client.read_holding_registers(address=0, count=10, slave=1)

if not result.isError():
    print("读取成功:", result.registers)
else:
    print("通信失败:", result)

# 关闭连接
client.close()
上述代码展示了通过TCP协议读取PLC寄存器的基本流程,适用于西门子、三菱等支持标准协议的设备。

常见PLC通信协议对比

协议传输方式Python支持库适用场景
Modbus TCPTCP/IPpymodbus中小型系统,通用性强
OPC UA加密通道opcua高安全性要求系统
S7Comm专有协议python-s7西门子S7系列PLC
graph LR A[PLC] -->|Modbus TCP| B(Python数据采集服务) B --> C{数据处理} C --> D[本地数据库] C --> E[云平台] C --> F[HMI界面]

第二章:OPC UA协议核心机制解析

2.1 OPC UA架构模型与信息建模原理

OPC UA(Open Platform Communications Unified Architecture)采用分层架构设计,核心包括安全、通信和信息建模三层。其信息模型以地址空间为基础,通过节点(Node)和引用(Reference)组织数据,实现设备间语义互操作。
信息模型核心元素
  • 对象(Object):表示实体实例,如传感器或设备;
  • 变量(Variable):存储具体数据值,如温度读数;
  • 方法(Method):支持远程调用操作,如重启设备。
节点结构示例
<Node Id="ns=2;s=TemperatureSensor">
  <BrowseName>2:TemperatureSensor</BrowseName>
  <DisplayName>温度传感器</DisplayName>
  <References>
    <Reference ReferenceType="HasComponent">ns=2;s=TempValue</Reference>
  </References>
</Node>
该XML片段定义了一个传感器节点,包含唯一ID、可读名称及组件引用,体现层次化数据组织方式。
标准数据类型映射
OPC UA 类型对应语言类型(C++)说明
Int32int32_t有符号32位整数
Doubledouble双精度浮点数
Stringstd::stringUnicode字符串

2.2 节点、服务与地址空间的交互逻辑

在分布式系统中,节点通过注册服务到统一的地址空间实现动态发现与通信。每个节点启动时向注册中心写入自身服务元数据,包括IP、端口、健康状态等。
服务注册流程
  • 节点启动后初始化本地服务实例
  • 向地址空间(如etcd或Consul)写入服务路径:/services/user-service/192.168.1.10:8080
  • 设置TTL心跳机制维持会话存活
代码示例:服务注册
cli.Put(context.TODO(), "/services/order-svc/"+addr, "active", client.WithTTL(5*time.Second))
该操作将当前节点地址写入etcd的指定路径,并设置5秒TTL。客户端需周期性刷新键值以维持服务在线状态,超时未更新则自动从地址空间移除。
数据同步机制
使用监听器监控地址空间变化,一旦有新增或下线事件,立即通知所有订阅节点更新本地路由表。

2.3 安全通信机制:加密与身份验证实践

在分布式系统中,安全通信是保障数据完整性和机密性的核心。为防止中间人攻击和数据泄露,必须结合加密与身份验证机制。
传输层加密(TLS)配置
使用 TLS 加密客户端与服务器之间的通信,确保数据在传输过程中不被窃听或篡改。
// 示例:Go 中启用 HTTPS 服务
package main

import (
    "net/http"
    "log"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("安全通信已建立"))
    })

    // 使用证书文件启动 HTTPS 服务
    log.Fatal(http.ListenAndServeTLS(":443", "cert.pem", "key.pem", nil))
}
该代码通过 ListenAndServeTLS 启动一个支持 TLS 的 HTTP 服务。参数 cert.pem 是服务器公钥证书,key.pem 是对应的私钥文件,二者共同完成握手认证。
身份验证方式对比
  • API 密钥:轻量级,适用于服务间认证
  • OAuth 2.0:适合用户授权场景,支持令牌刷新
  • mTLS(双向 TLS):最高安全性,客户端与服务器均需证书

2.4 同步与异步通信模式对比分析

在分布式系统中,通信模式的选择直接影响系统的性能与可扩展性。同步通信要求调用方阻塞等待响应,适用于强一致性场景;而异步通信通过消息队列或事件驱动实现解耦,提升系统吞吐量。
典型同步调用示例
resp, err := http.Get("https://api.example.com/data")
if err != nil {
    log.Fatal(err)
}
// 阻塞直至收到响应
该代码使用 Go 发起同步 HTTP 请求,调用线程在 Get 方法执行期间被挂起,直到服务器返回结果或超时。
异步通信优势
  • 提高资源利用率,避免线程阻塞
  • 支持削峰填谷,应对突发流量
  • 增强系统容错能力
性能对比
特性同步异步
延迟敏感性高低
系统耦合度高低

2.5 基于TCP二进制协议的高效数据传输

在高并发、低延迟的网络通信场景中,基于TCP的二进制协议成为提升数据传输效率的关键手段。相比文本协议(如HTTP/JSON),二进制协议通过紧凑的数据格式和序列化机制显著减少带宽消耗。
协议设计核心要素
  • 魔数(Magic Number):标识协议合法性,防止非法连接;
  • 数据长度字段:预知报文大小,实现精确读取;
  • 指令类型:区分业务操作码;
  • 序列化体:使用Protobuf或自定义二进制编码压缩数据。
典型数据包结构示例
字段字节长度说明
Magic Number40x12345678
Payload Length4不包含头部的负载长度
Command ID2操作命令码
Datan二进制序列化数据
Go语言解码片段
type Packet struct {
    Magic  uint32
    Length uint32
    CmdID  uint16
    Data   []byte
}

func ReadPacket(conn net.Conn) (*Packet, error) {
    header := make([]byte, 10)
    if _, err := io.ReadFull(conn, header); err != nil {
        return nil, err
    }
    packet := &Packet{
        Magic:  binary.BigEndian.Uint32(header[0:4]),
        Length: binary.BigEndian.Uint32(header[4:8]),
        CmdID:  binary.BigEndian.Uint16(header[8:10]),
    }
    packet.Data = make([]byte, packet.Length)
    if _, err := io.ReadFull(conn, packet.Data); err != nil {
        return nil, err
    }
    return packet, nil
}
上述代码首先读取固定长度的头部(10字节),解析出数据长度后,再精确读取后续负载,避免粘包问题。使用io.ReadFull确保完整读取指定字节数,结合大端序解析保证跨平台一致性。

第三章:asyncua 1.0库核心功能实战

3.1 异步客户端构建与连接管理

在高并发网络编程中,异步客户端是提升系统吞吐量的核心组件。通过非阻塞 I/O 和事件循环机制,能够以少量线程支撑大量并发连接。
异步客户端基本结构
使用 Go 语言构建异步 TCP 客户端时,可借助 net 包与 goroutine 配合实现:
conn, err := net.DialTimeout("tcp", "localhost:8080", 5*time.Second)
if err != nil {
    log.Fatal(err)
}
defer conn.Close()
上述代码建立非阻塞连接,配合 SetReadDeadline 可实现超时控制,避免资源长期占用。
连接池管理策略
为减少频繁建连开销,采用连接池技术复用连接:
  • 预初始化一批连接
  • 使用 channel 实现连接的获取与归还
  • 定期健康检查,剔除无效连接
通过事件驱动模型与连接池协同,显著提升客户端性能与稳定性。

3.2 服务器端节点读写与订阅实现

在分布式系统中,服务器端节点的读写与订阅机制是保障数据实时性与一致性的核心。为支持高并发访问,通常采用异步非阻塞IO模型处理客户端请求。
读写操作流程
服务器通过事件循环监听客户端连接,读写操作封装为独立任务提交至线程池执行,避免阻塞主流程:
// 处理客户端写入请求
func handleWrite(ctx *Context, req *WriteRequest) {
    // 将数据写入本地存储引擎
    if err := storage.Write(req.Key, req.Value); err != nil {
        ctx.respond(ErrWriteFailed)
        return
    }
    // 触发变更通知,推送至订阅者
    pubsub.Publish(req.Key, req.Value)
    ctx.respond(OK)
}
该函数首先将键值写入底层存储,成功后通过发布-订阅系统广播变更事件,确保订阅者及时感知数据更新。
订阅机制设计
使用基于主题(Topic)的订阅模式,客户端可注册对特定数据路径的关注:
  • 订阅消息采用持久化队列,防止离线期间丢失事件
  • 支持多级通配符匹配,如 /sensor/+ 和 /data/#
  • 心跳机制维持长连接,提升连接可靠性

3.3 数据类型映射与自定义变量处理

在跨平台数据交互中,数据类型映射是确保系统兼容性的关键环节。不同语言和数据库对数据类型的定义存在差异,需建立统一的映射规则。
常见数据类型映射表
Go 类型MySQL 类型描述
int64BIGINT长整型数值
stringVARCHAR可变字符串
boolTINYINT(1)布尔值存储
time.TimeDATETIME日期时间格式
自定义变量处理示例

// 自定义类型实现 Scanner 和 Valuer 接口
type Status int

func (s *Status) Scan(value interface{}) error {
    val, _ := value.(int64)
    *s = Status(val)
    return nil
}

func (s Status) Value() (driver.Value, error) {
    return int64(s), nil
}
上述代码通过实现 database/sql 的 Scanner 和 Valuer 接口,使自定义类型可在数据库读写时自动转换,提升类型安全性与代码可维护性。

第四章:典型工业场景集成案例

4.1 与西门子S7-1500 PLC的数据实时采集

实现与西门子S7-1500 PLC的高效数据采集,是构建工业物联网系统的关键环节。通过使用开放式通信协议如OPC UA或基于以太网的S7通信协议,可建立稳定的数据通道。
通信协议选择
推荐优先采用OPC UA协议,其具备跨平台、安全加密和发布/订阅机制优势。PLC侧需配置通信变量并启用OPC服务器功能。
数据读取代码示例

from opcua import Client

client = Client("opc.tcp://192.168.0.100:4840")
client.connect()

# 读取温度变量值
temp_node = client.get_node("ns=2;s=Channel1.Device1.Temperature")
temperature = temp_node.get_value()
print(f"当前温度: {temperature} °C")
上述代码建立OPC UA连接后,通过命名空间和节点ID定位变量,调用get_value()实现周期性数据读取,适用于监控关键工艺参数。
性能优化建议
  • 合理设置采样周期,避免网络拥塞
  • 对高频数据使用异步读取模式
  • 启用数据压缩减少传输负载

4.2 基于树莓派的边缘网关开发实践

在物联网架构中,树莓派凭借其低功耗与高扩展性,常被用作边缘网关设备,实现本地数据聚合与协议转换。
环境搭建与依赖配置
首先安装最新版 Raspberry Pi OS,并启用 SSH 与 GPIO 接口支持。通过 APT 包管理器安装关键依赖:

sudo apt update
sudo apt install python3-pip mosquitto-clients libgpiod2
上述命令更新软件源并安装 Python 包管理工具、MQTT 客户端支持库及 GPIO 控制库,为后续传感器通信和消息转发奠定基础。
数据采集与协议封装
使用 Python 脚本读取 DHT22 温湿度传感器数据,并通过 MQTT 协议上传至云端:

import paho.mqtt.client as mqtt
client = mqtt.Client()
client.connect("192.168.1.100", 1883, 60)
client.publish("sensor/room1", "{\"temp\":23.5,\"humi\":45}")
该代码实例化 MQTT 客户端,连接局域网内 Broker 并发布 JSON 格式传感数据,实现轻量级边缘上报机制。

4.3 多PLC设备并发监控系统设计

在工业自动化场景中,需同时采集多个PLC设备的数据。系统采用基于消息队列的异步通信架构,提升并发处理能力。
数据同步机制
通过Redis缓存各PLC最新状态,避免频繁访问数据库。使用心跳机制检测设备连接状态。
核心代码实现
// 启动多协程监听不同PLC
for _, plc := range plcs {
    go func(p PLC) {
        for {
            data := p.Read()         // 读取寄存器
            redis.Set(p.ID, data)    // 缓存至Redis
            time.Sleep(100 * time.Millisecond)
        }
    }(plc)
}
上述代码利用Golang协程实现并行采集,Read()方法获取PLC实时数据,redis.Set()更新缓存,间隔100ms控制采样频率。
性能对比表
方案最大连接数平均延迟(ms)
单线程轮询8210
协程并发6445

4.4 故障诊断与连接重连机制优化

在高可用系统中,网络抖动或服务短暂不可用常导致连接中断。为提升稳定性,需构建智能化的故障诊断与自动重连机制。
连接状态监控
通过心跳探测实时监测连接健康状态,结合超时阈值判断异常。一旦检测到断开,立即触发诊断流程,区分瞬时故障与持久性故障。
指数退避重连策略
采用指数退避算法避免雪崩效应,初始间隔1秒,每次重试翻倍,上限30秒。
func exponentialBackoff(retry int) time.Duration {
    if retry < 0 {
        retry = 0
    }
    return time.Duration(1<
该函数返回第 retry 次重连的等待时间,利用位运算高效计算 2^n,防止频繁重试。
  • 心跳周期:5秒
  • 最大重试次数:10次
  • 启用随机抖动:±10% 时间偏移,防并发冲击

第五章:未来趋势与生态扩展展望

边缘计算与AI模型的融合部署
随着IoT设备数量激增,边缘侧推理需求显著上升。TensorFlow Lite for Microcontrollers 已支持在 Cortex-M 系列 MCU 上运行轻量级模型。例如,在STM32上部署关键词识别模型时,可采用以下量化策略压缩模型体积:

import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model("model")
converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_LATENCY]
tflite_quant_model = converter.convert()
open("model_quant.tflite", "wb").write(tflite_quant_model)
开源硬件生态的协同演进
RISC-V 架构推动了软硬一体创新,SiFive 和 PicoRV32 等项目降低了芯片定制门槛。开发者可通过如下流程构建定制化SoC:
  • 使用 Chisel 或 Verilog 编写外设模块
  • 集成 RISC-V 软核并配置内存映射
  • 通过 FPGA 原型验证功能逻辑
  • 投片前进行形式化验证与功耗仿真
云边端一体化运维架构
阿里云 Link Edge 与 AWS Greengrass 提供统一管理界面。下表对比两类平台的关键能力:
能力维度AWS Greengrass阿里云 Link Edge
设备影子同步支持支持
本地函数计算LambdaEdge Function
跨区域级联需自定义桥接原生支持
云边端三级架构示意图

相关推荐

西门子840DSL/840D/828D数控系统OPC UA数据采集实战指南

工业数据采集是智能制造与数字化转型的基础,其核心在于从各类工业设备中稳定、实时地获取数据。OPC UA作为新一代工业通信统一架构,以其跨平台、高安全性和丰富数据模型的特点,已成为连接异构设备与上层信息系统的关键技术协议。通过OPC UA协议,工程师能够将设备内部的海量运行参数(如主轴负载、坐标位置、程序状态等)转化为结构化、可分析的数据资产,为生产过程的透明化、设备健康管理以及工艺优化提供核心数据支撑。在高端制造领域,针对西门子Sinumerik 840DSL、840D及828D这类精密数控系统的数据采集,

weixin_34025151的博客 439

【Python】浅谈python和PLC的直接通讯(深度解析)

PLC(Programmable Logic Controller)可编程逻辑控制器,可以理解为一个微型计算机,广泛应用于工业控制中,如楼宇智控、精密机床、汽车电子等等。随着物联网的兴起,越来越多的传统工业设备需要和外界通信,但很多情况下,类似PLC这种微控制器,由于自身硬件的因素,无法直接与外界互联互通,通过PC这种上位机作为一个中介桥梁,为PLC与外界沟通打开了一扇门。Python作为当前最火的语言,在AI、云计算等诸多方面都能看到它的身影,当然在工业控制中,也不能少了它。

liaozp88的博客 1万+

山东省人工智能OPC创新人才政策解读与工业AI应用实践

工业互联网的核心在于实现运营技术(OT)与信息技术(IT)的深度融合,其中数据采集与通信是基础。OPC UA作为工业通信统一架构标准,解决了跨厂商设备数据互通难题,为上层应用提供了标准化、安全的数据访问接口。其技术价值在于通过信息模型实现语义互操作,为数据驱动决策奠定基础。人工智能技术,特别是机器学习和深度学习,能够对海量工业时序数据进行模式识别、预测分析和智能决策,是实现预测性维护、工艺优化等高级应用的关键。将AI与OPC UA结合,构建了从数据采集、传输到智能分析、决策反馈的完整闭环,这正是工业智能化的

weixin_30552811的博客 382

python和PLC通信(以太网modbustcp)

以上是Modbus协议中常用的寄存器协议,它们允许设备读取或写入不同类型和数量的寄存器数据,以满足各种应用需求。Modbus协议还有其他类型的寄存器,如输入寄存器(Input Register)和离散输入寄存器(Discrete Input Register),它们用于读取、存储和传输不同类型的数据。在Python中,内置的。Modbus协议中的寄存器是用于存储和传输数据的内存区域,它们被分为两种类型:线圈寄存器和保持寄存器。- 功能码03H:用于读取保持寄存器的值,可以读取一个或多个连续的保持寄存器。

weixin_51506576的博客 5374

OpenClaw技能驱动架构:53个生产级技能深度解析与工业自动化实践

OpenClaw并非传统LLM Agent框架,而是一种以技能(Skill)为第一公民的智能体操作系统,其核心是将确定性任务封装为可注册、可热加载、可声明式编排的标准能力单元。它基于轻量沙箱运行时、元数据驱动的技能注册中心与无逻辑硬编码的编排器三层架构,实现‘功能即插即用’的工程化落地。相比LangChain等流程编排工具,OpenClaw更贴近IoT、制造业、能源等对稳定性与可运维性要求严苛的场景,天然适配Modbus、OPC UA、MQTT、SFTP等工业协议及InfluxDB、Prometheus、企

425

Python与Matlab工程选型指南:6大维度实测对比

在数据科学与机器学习工程实践中,Python和Matlab并非简单优劣之分,而是面向不同交付约束的工具选择。Python作为通用胶水语言,凭借丰富生态(如pandas、PyTorch、FastAPI)在实时流接入、异构系统集成、容器化部署及团队协作中展现强大适应性;Matlab则以闭环工作台设计,在单机分析、工业协议原生支持、算法快速验证及强监管场景下显著降低认知负荷与版本风险。本文基于27个跨行业真实项目,从数据接入、算法开发、模型验证、可视化、工程部署到团队协作六大维度,提供可复现的性能数据与断点分析,

weixin_30394669的博客 387

Python使用python-snap7实现西门子PLC通讯

参考文献:https://blog.csdn.net/XUMENGCAS/article/details/122695234。2.打开PLC连接机制,勾上允许来自远程对象的PUT/GET通信访问。4.Python代码(写入PLC的DB211数据块的数据)1.先去掉DB211优化块访问的勾。3.DB211数据监视界面。

qq_27353621的博客 6151

5G+AI融合实战:低时延高可靠工业智能系统构建指南

5G与人工智能的融合,本质是解决实时AI对确定性网络的刚性需求。传统网络在时延、可靠性与连接密度三方面难以支撑AI闭环控制——工业场景要求10毫秒级端到端响应、0.001%级丢包率及百万级终端接入。5G通过URLLC(超高可靠低时延通信)、网络切片、UPF下沉和mMTC等关键技术,为AI提供‘可承诺’的数据通路;而AI则需适配5G特性,如引入网络KPI作为模型输入、支持动态卸载、兼容H.265传输失真等。这种云-边-端协同架构已在智能质检、远程操控、AGV调度等典型工业场景落地验证,成为智能制造从‘能连’迈

524

西门子PLCSIM与第三方组态软件通信实战:S7协议与OPC UA配置详解

在工业自动化领域,通信协议是实现设备间数据交换的核心技术,它定义了数据格式、传输规则与交互逻辑,是系统集成的基石。其工作原理基于客户端-服务器架构,通过特定的报文封装与解析,在物理或虚拟网络间可靠地传递控制指令与状态信息。掌握通信技术对于构建高可靠、可扩展的自动化系统具有关键价值,能有效降低硬件依赖、提升开发调试效率,并支撑数字孪生、远程监控等高级应用场景。本文聚焦于西门子PLCSIM仿真环境与第三方组态软件(如力控、组态王)的集成通信,深入剖析了S7协议与OPC UA两种主流方案。通过实战演示,详细说明了

weixin_34161083的博客 382

上位机Python的视觉处理和与PLC的通讯

Imshow指令为显示图片数据,其中参数的‘camera’为窗口的名字,waitKey指令为等待指令,在后面括号中填入1则是程序会等待1毫秒,这样在画面显示1毫秒后就会关闭,我们再通过while循环来重复执行,这样我们就获取了一个实时变化的摄像头画面。这里介绍下circle函数,是一个用于画圆的参数,其第一个参数img为画圆的图片,(i[0],i[1])为圆心的x与y坐标,i[2]为画圆的半径,(0,0,255)为画圆线的颜色,2为线的宽度。下载完之后导入软件包,便可以进行我们对摄像头画面的获取了。

众智创新团队的博客 1469

Python基于Snap7与PLC建立连接并读写数据

Python通过snap7与PLC建立连接并读写数据,这里主要是以SIEMENS的PLC为例,通过Pycharm与TIA V17建立连接,对其DB块、M区、Q区、I区读写数据。

天生我才必有用 1万+

OPC UA Hello报文解析:协议握手与工业通信入门密钥

OPC UA Hello报文是工业物联网中TCP二进制通信的初始握手消息,属于无状态、明文传输的基础协议单元。其核心原理是通过固定12字节MessageHeader(含MessageType='HEL\0'、ProtocolVersion=0)与结构化Payload(EndpointUrl、ReceiveBufferSize等)完成能力声明与连接协商。该报文不依赖TLS或证书,却直接决定会话建立成败,是资源受限设备(如ARM Cortex-M)轻量接入的关键入口。技术价值在于解耦传输层、支撑跨厂商互操作,并

weixin_33922670的博客 495

【数字孪生工业应用实战】第4篇:实时数据采集与多源异构数据集成:构筑数字孪生的“神经系统” —— 从协议适配到数据湖的万字实战全解

本文系统阐述了数字孪生系统中数据采集与多源异构集成的核心挑战与解决方案。针对工业现场Modbus、OPC UA、MQTT等协议混杂、数据噪声缺失及时钟偏移等问题,从实战出发,详解协议深度适配、时序数据库选型(InfluxDB/TDengine)优化、多维数据质量治理与高精度时标对齐算法,并设计基于Kafka+Flink+TDengine的统一数据湖架构。以某汽车零部件产线数字孪生项目为完整案例,涵盖12套可运行代码、5张对比表及踩坑复盘,为工业互联网从业者提供可落地的实用指南。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 218

Python与Matlab数据科学选型决策指南:按场景匹配最优工作流

在数据科学工程实践中,工具选择本质是工作流适配问题,而非语言优劣之争。Python以通用性、生态整合和部署灵活性见长,支撑从数据获取、模型训练到Web服务的全链路;Matlab则凭借数学原生表达、领域专用工具箱(如Signal Processing、Control System)及行业认证合规性,在科研推导、信号处理、控制系统设计等场景保持不可替代性。二者性能差异多源于I/O效率、算法实现质量与硬件支持深度,而非语言本身。真实项目中,混合架构(如Matlab提取特征+Python部署服务)已成为新能源、医疗

weixin_30536513的博客 465

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1528

Sparse4Dv3

instance_feature也设置为nn.Parameter。修正分支2*(linear->relu->linear->relu->layernorm)->linear->scale,分类分枝2*(linear->relu->layernorm)->linear(256,9),质量评估分枝2*(linear->relu->layernorm)->linear(256,2)。每组两类instance,1是加上范围(-x,x)内均匀分布噪声,2是加上(-2x,-x)U(x,2x)范围内均匀分布噪声。

yuanl15的博客 1351

Python程式和自动化设备PLC交互

有过真正落地项目经验的开发人员都知道,使用计算机各种语言开发的项目如果想要落地实施,往往无可避免的要和自动化等相关硬体结合使用,只有这样才能真正的实现软硬体的结合,从而实现自动化操作。在计算机视觉的项目中,一个瑕疵检测AI项目的落地,需要现场、光学取像系统软硬体、AI算法模型+GUI界面(或者web界面)、PLC的硬体自动化联动等共同组成,本文主要讲解软硬体的结合部分。

图灵追幕者博客录 2705

Dify工作流构建案例:迭代驱动的多维深度搜索

为了克服这些挑战,我们可以设计一个能够智能协同内部知识库与外部互联网搜索,并最终由大型语言模型(LLM)进行深度整合与精准回答的高级工作流。

同名公众号:dify实验室 2291

搭建PLC模拟仿真环境——Python使用python-snap7实现西门子PLC通讯

snap7是一个由国外程序员开发的基于以太网与西门子S7系列PLC的通讯的开源库,类似于C#的S7.Net,但是它不单只支持Python,还支持Java、C/C++、C#等语言。官网包含了使用文档、源码、历史版本等说明,可以根据需要自行查阅。python-snap7官方文档GitHub。

weixin_45897172的博客 6543

数字IC后端手把手实战教程 | Innovus verify_drc VIA1 DRC Violation解析及脚本自动化修复方案

数字IC后端实战项目案例之Innovus verify_drc DRC Violation脚本自动化修复方案

weixin_37584728的博客 4048

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装。

weixin_40132006的博客 2241

【PLC+Python】snap7/Tkinter实现与西门子PLC通讯/可视化(2)——Python上位机

snap7是一个由国外程序员开发的基于以太网与西门子S7系列PLC的通讯的开源库,类似于C#的S7.Net,但是它不单只支持Python,还支持Java、C/C++、C#等语言。

sinat_33408502的博客 4599

rfid标签技术原理

奇怪的是,RFID标签技术原理的深入剖析不仅揭示了其背后的奥秘,也让我们更加全面地认识到这一技术在数字化转型中的重要性和潜力。随着技术的不断进步和应用场景的不断拓展,RFID标签将在更多领域发挥重要作用,为物联网、智能制造等领域的发展注入新的活力。这意味着在一个读写器的覆盖范围内,可以同时读取多个RFID标签的数据,大大提高了数据收集的速度和效率。:RFID标签的“大脑”,负责存储和处理数据。芯片内部集成了存储器、控制逻辑和射频接口等电路,能够接收来自读写器的射频信号,执行相应的数据处理和通信任务。

x3088的博客 2159

揭秘PLC与Python通信黑科技:5步实现高效数据交互

掌握PLC与Python通信黑科技,5步实现工业设备高效数据交互。详解PLC通信Python脚本的编写方法,适用于自动化监控、数据采集等场景,支持多种协议对接,稳定可靠。值得收藏

FastProceed的博客 1089

被滑块虐了3个月!我终于写出了零失败的Python滑块验证码通杀方案(AI识别+真人轨迹)

缺口识别的偏移量一定要算对:滑块的初始位置一般在图片左侧,宽度约50像素,一定要减去这个初始宽度,不然会滑多了;绝对不要用Selenium的drag_and_drop方法:这个方法是匀速滑动,直接被风控秒识别,必须自己分步控制鼠标移动;滑动前后必须加停顿:真人按住滑块会停0.1-0.3秒再开始滑,松开之前也会停0.05-0.1秒,不要按下去立刻就滑,滑完立刻就松;不要每次都滑的完美无缺:可以设置10%的概率故意滑错一次,然后刷新验证码重新滑,更像真人;无头模式通过率极低。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 501

半导体材料仿真:二维材料仿真_(1).二维材料的基本概念

在半导体材料仿真领域,二维材料因其独特的物理和化学性质而受到广泛关注。二维材料,也称为二维纳米材料,是指在二维空间(通常是平面)上具有原子级厚度的材料。这些材料的厚度通常在几个纳米甚至单个原子层的范围内,使得它们在电子、光学、热学和机械性能上表现出与传统三维材料显著不同的特性。本节将详细介绍二维材料的基本概念,包括它们的分类、结构、性质以及在半导体材料仿真中的应用。

2401_87715305的博客 1545
上一篇: 【Python 3.14重磅升级】:模式匹配增强与类型系统实战全解析
下一篇: 为什么顶尖工程师都在用CodeLlama做重构?Python实战解析
InstrIsle
博客等级 码龄1年 130粉丝 1977原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值