PSW、PFW、SPSW、SPFW 是信捷TouchWin

先把这4个按钮/控件一次性讲透:PSW、PFW、SPSW、SPFW 是信捷TouchWin里的内部寄存器按钮/控件,专门操作触摸屏自己的内部字寄存器,不直接连PLC外部地址。

一、先分清4个的本质(一句话记)

  • PSW:Panel System Word → 触摸屏内部非保持字寄存器(掉电清零)

  • PFW:Panel Flash Word → 触摸屏内部掉电保持字寄存器(断电不丢)

  • SPSW:System Panel System Word → 系统专用PSW(系统状态/通信状态,只读/半只读)

  • SPFW:System Panel Flash Word → 系统专用PFW(系统配置/配方,掉电保持)

二、PSW(内部非保持字)怎么用

  1. 用途
  • 临时数据、画面切换标志、显示控制、计数、临时参数、通信状态监控

  • 掉电重启后自动清零,适合临时变量

  1. 地址范围(TS系列)
  • PSW:256~8191(PSW0~255为系统占用,禁止修改)
  1. 控件用法(PSW按钮/数值框)

  2. 插入「字按钮/数值输入/数值显示」,对象类型选 PSW

  3. 地址:如 PSW300

  4. 功能:- 数值输入:用户输入数字→写入PSW300

  • 数值显示:读取PSW300并显示

  • 字按钮:点击给PSW300赋值(如设为1、0、加1、减1)

  1. 脚本直接读写(C函数):c

PSW300 = 50; // 赋值

int val = PSW300; // 读取

PSW300++; // 自加

  1. 典型场景
  • 画面切换标志:PSW20=0→显示A区,=1→显示B区

  • 临时计数:PSW50记录点击次数

  • 通信状态显示:读取PSW100(主设备通信状态)

三、PFW(内部掉电保持字)怎么用

  1. 用途
  • 配方参数、累计产量、设置值、用户密码、报警记录、需要断电保存的数据

  • 掉电不丢,TS屏每1分钟自动写入Flash一次

  1. 地址范围(TS系列)
  • PFW:256~4000000(PFW0~255系统占用)
  1. 控件用法

  2. 插入「字按钮/数值输入/显示」,对象类型选 PFW

  3. 地址:如 PFW500

  4. 功能同PSW,但数据永久保存

  5. 脚本读写(需用Read/Write函数,不能直接赋值):c

Write(PFW, 500, 100); // 写PFW500=100

int val;

Read(PFW, 500, &val); // 读PFW500

  1. 典型场景
  • 配方参数:PFW1000~PFW1005存6个配方值

  • 累计产量:PFW2000记录总生产数量

  • 用户设置:PFW3000存报警阈值

四、SPSW(系统专用PSW)怎么用

  1. 用途
  • 系统状态、通信状态、时间、运行信息、只读/半只读,用户一般只读不写

  • 非保持,掉电清零

  1. 常用地址(TS)
  • SPSW100:主设备(PLC)通信状态(0=正常,非0=异常)

  • SPSW101:扩展模块状态

  • SPSW102:通信错误码

  • SPSW200~209:系统时间(年/月/日/时/分/秒)

  1. 用法

  2. 插入数值显示,对象类型 SPSW,地址如 SPSW100

  3. 显示通信是否正常:SPSW100=0→绿色"正常",≠0→红色"异常"

  4. 脚本读取:c

int comm = SPSW100;

if (comm != 0) MessageBox("通信异常!");

五、SPFW(系统专用PFW)怎么用

  1. 用途
  • 系统配置、配方管理、用户权限、掉电保持的系统参数

  • 一般由软件/系统管理,用户少量读写

  1. 用法

  2. 控件选 SPFW,地址如 SPFW100(配方组号)

  3. 用于配方导入/导出、权限等级存储

  4. 脚本用Read/Write访问

六、4个控件对比表(一眼分清)

类型 全称 掉电保持 读写属性 主要用途

PSW Panel System Word ❌ 不保持 读写 临时数据、画面控制、计数

PFW Panel Flash Word ✅ 保持 读写 配方、产量、设置值

SPSW System Panel System Word ❌ 不保持 只读/半只读 通信状态、系统时间

SPFW System Panel Flash Word ✅ 保持 受限读写 系统配置、配方管理

七、快速上手步骤(以PSW/PFW为例)

  1. 打开TouchWin,拖入「数值输入」或「字按钮」

  2. 双击→对象类型:选 PSW 或 PFW

  3. 地址:PSW300 / PFW500(从256开始)

  4. 设置范围、格式(十进制/十六进制)

  5. 下载到TS屏,测试输入/显示/按钮赋值

八、常见坑

  • ❌ 用PSW0~255:系统区,改了会异常

  • ❌ PFW直接赋值:必须用Read/Write函数

  • ❌ SPSW随意写:系统状态区,写了可能死机

  • ✅ 建议:临时用PSW,要保存用PFW,看状态用SPSW

相关推荐
GeekArch9 小时前
第28讲:避坑——AI堆栈分配错误、栈溢出BUG
c语言·人工智能·stm32·mcu·学习·bug
dankokoko12 小时前
一.函数与极限2
学习
知识分享小能手12 小时前
统计学学习教程,从入门到精通,分类数据分析 — 知识点详解(14)
学习·分类·数据分析
菜鸟‍12 小时前
【论文学习】MICCAI 2025 || ARSeg:面向不完整文本提示的鲁棒医学图像指代表达分割
图像处理·学习
三克的油12 小时前
c++算法学习-4
学习
知识分享小能手13 小时前
统计学学习教程,从入门到精通,分类数据分析 — 知识点详解(13)
学习·分类·数据分析
知识分享小能手14 小时前
统计学学习教程,从入门到精通,参数估计 — 知识点详解与公式推导(10)
学习·机器学习·概率论
有Li14 小时前
EvoMDT:用于多癌种结构化临床决策的自进化多智能体系统文献速递/医学智能体前沿
人工智能·学习·分类·文献·医学生
sulikey17 小时前
个人Linux操作系统学习笔记11 - 环境变量
linux·笔记·学习
南清的coding日记18 小时前
7.21 Spring、MySQL、MQ、前端面试题总结
java·学习·面试