返回主站|会员中心|保存桌面

发那科机器人(中国)服务商    

发那科工业机器人

新闻分类
  • 暂无分类
联系方式
  • 联系人:姚经理
  • 电话:18520143666
站内搜索
 
首页 > 新闻中心 > plc记录不同时刻的采样数值!
新闻中心
plc记录不同时刻的采样数值!
发布时间:2025-11-30        浏览次数:11        返回列表

PLC 记录不同时刻的采样数值(以三菱 FX3U / 西门子 S7-200 为例)

PLC 记录不同时刻的采样数值是工业现场数据追溯、工艺分析的核心需求(如温度 / 压力 / 电流采样、设备运行参数记录),核心逻辑是 **“触发条件 + 时间戳 + 数据存储”**,需结合 PLC 的实时时钟(RTC)、数据寄存器(D)/V 区、循环存储 / 断电保持功能实现。以下分「通用原理」「主流 PLC 实操(三菱 FX3U / 西门子 S7-200)」「进阶优化」三部分详解,覆盖不同采样场景(定时采样、事件触发采样)。

一、核心原理:记录不同时刻采样值的 3 个关键要素

无论哪种 PLC,记录逻辑都需满足以下核心环节,缺一不可:

关键要素实现方式作用
时间戳(时刻)读取 PLC 内置实时时钟(RTC),获取年 / 月 / 日 / 时 / 分 / 秒,打包为 “时间数据”标记采样值对应的具体时刻
采样触发定时触发(如每隔 10s)、事件触发(如传感器信号、按键、报警)、周期扫描触发决定 “何时” 采集数据
数据存储连续寄存器区(如 FX3U 的 D1000~D2000、S7-200 的 V1000~V2000),支持循环覆盖 / 断电保持保存 “时刻 + 采样值”,避免数据丢失

二、三菱 FX3U 实操:记录不同时刻采样值(最常用)

FX3U 自带实时时钟(无需扩展模块),支持断电保持寄存器(D200~D511 默认断电保持,可通过参数扩展),适合中小规模采样记录。

场景 1:定时采样(每隔 N 秒记录 1 次,如 10s 采样 1 次温度值)

步骤 1:初始化实时时钟(首次使用校准时间)

FX3U 的实时时钟通过 D8013~D8019 存储当前时间,可通过编程或 GX Works2 直接校准:

寄存器含义取值范围寄存器含义取值范围
D80130~59D8016年(后两位)0~99
D80140~59D80171~12
D80150~23D80181~31
D8019星期0~6(0 = 周日)---

校准时间示例(手动赋值)

plaintext

LD M8002          ; 上电初始化脉冲
MOV K25 D8016     ; 年份:2025(存后两位25)
MOV K11 D8017     ; 月份:11月
MOV K30 D8018     ; 日期:30日
MOV K14 D8015     ; 小时:14点
MOV K20 D8014     ; 分钟:20分
MOV K0 D8013      ; 秒:0秒

步骤 2:编写定时采样程序(10s 采样 1 次,存储 “时间 + 温度值”)

假设:

  • 采样源:温度值(模拟量)存于 D0;

  • 存储区:D1000 开始,每笔数据占 5 个寄存器(年 Dn、月 Dn+1、日 Dn+2、时分秒 Dn+3、采样值 Dn+4);

  • 指针:D999(记录当前存储位置,初始 0);

  • 定时:M8013(1s 脉冲)+ D998(计时计数器,计满 10s 触发采样)。

核心程序

plaintext

; 1. 10s定时计时
LD M8013          ; 1s脉冲
INC D998          ; 计时+1
LD D998 K10       ; 计满10s
RST D998          ; 清零计时器
SET M0            ; 触发采样标志

; 2. 采样并存储(M0触发)
LD M0
MOV D8016 D1000+D999*5  ; 存储年份(如25)
MOV D8017 D1001+D999*5  ; 存储月份(如11)
MOV D8018 D1002+D999*5  ; 存储日期(如30)
; 时分秒打包:时×10000 + 分×100 + 秒(如14:20:05 → 142005)
MOV K0 D1003+D999*5
MOV D8015 D1003+D999*5 K4 K0  ; 时存入高4位
MOV D8014 D1003+D999*5 K4 K4  ; 分存入中4位
MOV D8013 D1003+D999*5 K4 K8  ; 秒存入低4位
MOV D0 D1004+D999*5    ; 存储采样的温度值

; 3. 指针自增,循环存储(最多存储200笔,超出从D1000重新开始)
INC D999
LD D999 K200
RST D999
RST M0            ; 复位采样标志

场景 2:事件触发采样(如传感器 X0 触发,记录触发时刻的电流值)

核心区别:采样触发由 “定时” 改为 “外部事件(X0 上升沿)”,其余存储逻辑不变。

plaintext

LD X0
ANI M8000
PLS M1            ; X0上升沿触发脉冲

LD M1             ; 事件触发采样
; 以下同定时采样的“存储时间+采样值”逻辑
MOV D8016 D1000+D999*5
...
INC D999

FX3U 关键配置:断电保持

需将存储区(如 D998~D2000)设为断电保持:

  1. 打开 GX Works2 → 「参数」→「PLC 参数」→「断电保持设置」;

  2. 将 “数据寄存器” 的断电保持范围设为 D998~D2000;

  3. 写入 PLC,确保断电后采样数据不丢失。

三、西门子 S7-200 实操:记录不同时刻采样值

S7-200(CPU224/226)通过READ_RTC指令读取实时时钟,V区作为存储区(默认断电保持),逻辑与 FX3U 一致,仅指令和寄存器不同。

前提:定义变量(便于编程)

变量地址含义类型
VB100年(BCD 码)字节
VB101月(BCD 码)字节
VB102日(BCD 码)字节
VB103时(BCD 码)字节
VB104分(BCD 码)字节
VB105秒(BCD 码)字节
VW200采样值(如电流)
VW300存储指针(初始 0)

场景:定时 5s 采样,存储 “时间 + 采样值”

步骤 1:读取实时时钟(READ_RTC 指令)

plaintext

LD     SM0.1          // 上电初始化
CALL   READ_RTC, 0, VB100  // 读取实时时钟到VB100~VB105(0=时钟模块地址)

LD     SM0.0          // 循环读取时钟(保证时间实时更新)
CALL   READ_RTC, 0, VB100

步骤 2:5s 定时采样 + 存储

plaintext

// 1. 5s定时(SM0.5=1s脉冲)
LD     SM0.5
INCB   VB400          // 1s计数
LDB=   VB400, 5       // 计满5s
MOVB   0, VB400       // 清零计数器
SET    M0.0           // 触发采样

// 2. 采样存储(M0.0触发)
LD     M0.0
// 计算存储起始地址:VW300×10 + &VB1000(每笔数据占10字节:年/月/日/时/分/秒/采样值)
MOVW   VW300, VW402
MUL    VW402, 10, VW402
LDI    DI0            // 禁止中断(避免存储时干扰)
// 存储年(VB100)到VB1000+VW402
MOVB   VB100, *VD402
// 存储月(VB101)到VB1001+VW402
MOVB   VB101, *VD402 + 1
// 存储日(VB102)到VB1002+VW402
MOVB   VB102, *VD402 + 2
// 存储时(VB103)到VB1003+VW402
MOVB   VB103, *VD402 + 3
// 存储分(VB104)到VB1004+VW402
MOVB   VB104, *VD402 + 4
// 存储秒(VB105)到VB1005+VW402
MOVB   VB105, *VD402 + 5
// 存储采样值(VW200)到VW1006+VW402
MOVW   VW200, *VD402 + 6
EI                   // 允许中断
// 指针自增,循环存储(最多100笔)
INCB   VW300
LDB=   VW300, 100
MOVW   0, VW300
RST    M0.0           // 复位采样标志

四、进阶优化:提升采样记录的实用性

1. 循环存储(避免寄存器溢出)

如示例中设置 “最多存储 200/100 笔”,指针到达上限后复位,覆盖最早数据,适合无上位机的本地记录场景。

2. 数据上传上位机(SCADA / 触摸屏)

  • 三菱 FX3U:通过 485 通讯(MODBUS RTU)将存储区 D1000~D2000 上传到触摸屏(如威纶通),设置 “数据显示表格”,直接查看 “时刻 + 采样值”;

  • 西门子 S7-200:通过 PPI / 以太网通讯,将 V1000~V2000 数据上传到 WinCC,生成采样曲线 / 报表。

3. 高精度采样(ms 级)

若需记录 ms 级时刻(如高速响应场景),需结合 PLC 的高速计数器 / 系统时钟:

  • 三菱 FX3U:D8012(1ms 时钟脉冲),记录采样时的 D8012 值(ms 数),补充到时间戳中;

  • 西门子 S7-200:SMB34/SMB35(定时中断)+ SMW22(毫秒计数器),记录 ms 级时刻。

4. 异常采样过滤

避免无效数据(如传感器波动导致的异常值),采样后增加判断逻辑:

plaintext

// 三菱FX3U示例:仅存储0~100℃的温度值
LD M0
CMP D0 K0 M10
CMP D0 K100 M11
LD M10 AND M11
MOV D0 D1004+D999*5  ; 仅有效值存储
RST M0

五、常见问题与避坑

  1. 时间戳不准:定期校准 PLC 实时时钟(如每月 1 次),避免时钟漂移;

  2. 寄存器溢出:严格设置存储指针上限,或使用 “先进先出(FIFO)” 指令(FX3U 的 SFWR/SFRD)管理存储区;

  3. 断电丢失数据:务必配置寄存器断电保持,三菱 FX3U 注意 D 区默认断电保持范围,西门子 S7-200 V 区默认断电保持(需确认 CPU 电池正常);

  4. 采样频率过高:若采样间隔<PLC 扫描周期,需用中断采样(如 FX3U 的定时中断、S7-200 的 SMB34/SMB35),避免采样遗漏。

总结

PLC 记录不同时刻采样值的核心是 “时间戳 + 触发采样 + 有序存储”:

  • 中小规模场景(<1000 笔):直接用 PLC 内置寄存器 + 实时时钟,本地存储;

  • 大规模 / 长期记录:配合触摸屏 / SCADA 上传数据,或扩展存储卡(如 FX3U 的 FX3U-485ADP-MB+U 盘模块);

  • 高精度场景:结合中断 + ms 级时钟,提升采样时间分辨率。

若需针对具体场景(如 4mm 钢丝折弯的伺服电流采样、温度闭环控制的定时采样)编写完整程序,可告知 PLC 型号、采样频率、存储笔数,进一步提供精准代码!

收缩
  • QQ咨询

  • 电话咨询

  • 18520143666
  • 添加微信客服