NScada
文档中心 › 使用教程

nscada 采集软件完整教程:从建设备到看数据

分类:使用教程 · 2026-09-07 · nscada 技术团队

这篇教程带你走通 nscada 的完整闭环:装软件 → 建设备 → 配点位 → 建采集任务 → 看数据/转发。后半部分重点给出西门子 S7、Modbus TCP/RTU、RS-485 串口仪表三种场景下的真实点位示例,照着填就能跑。

一、先选一种打开方式

场景打开方式
快速体验在线 Demo:http://nscada.cn:3000
工程师本机桌面客户端(Windows / macOS)双击即用
长期采集服务端部署在 Windows / Linux / ARM 盒子,systemd/NSSM 常驻

二、四步闭环流程

  1. 建设备:选通道类型(S7 / Modbus TCP / Modbus RTU / 通用串口),填连接参数,点“测试连接”;
  2. 配点位:把要读的寄存器/变量地址写成点表(本文第三节给出三种协议示例);
  3. 建任务:设周期(如 1s)或 cron,启动采集;
  4. 看结果:运行监控页看“在线”与落库行数;配转发通道把数据推到 HTTP/MQTT。

三、点位(Tag)是什么

点位 = “一个要读的变量”。关键字段:

字段含义
code点号,如 TEMP1,同一设备内唯一
addrExpr地址表达式:协议不同写法不同(见下表)
dataTypebool / int16 / uint16 / int32 / uint32 / float32 / float64
scaleA / scaleB线性换算 value = scaleA × 原始值 + scaleB
precision / unit小数位 / 单位(℃、MPa、rpm…)
storeModealways 全量;on-change + deadband 只在变化超过死区时存

几十上百个点位建议用 Web 点表页的“下载模板 → 填表 → 导入 CSV”,一次建完。

四、不同协议的点位示例(重点)

4.1 西门子 S7(含 S7-1200/1500)

前置:TIA 勾选“允许远程伙伴(PUT/GET)访问”,DB 取消“优化的块访问”;S7-1200/1500 槽位一般 rack0/slot1。

codeaddrExprdataType说明
TEMP1DB1,REAL0float32DB1 首 4 字节工艺值
PRESSDB1,REAL8float32相隔 4 字节的另一个浮点
RUNDB1,X14.0boolDB1.DBX14.0 运行位
FAULTDB1,X14.1boolDB1.DBX14.1 故障位
COUNTDB1,INT20int16DB1.DBW20 产量
ARR_VDB1,INT30.8int16DB1 第 30 字节起 8 个 INT(数组)
M_SPEEDMD40float32标记区双字浮点
CNT32DB3,DINT0int3232 位有符号整数(DInt/DBD0)
I_RUNI0.1bool输入位(按钮等)
Q_LAMPQ2.3bool输出位(灯/阀)

注意:INT 是 16 位(2 字节,对应 DBW0),DInt 是 32 位(4 字节,对应 DBD0)。地址里的类型词必须与 PLC 变量类型一致,否则读不到或读错。

提示:同一 DB 连续地址会自动合并为区块读取,点位别乱排影响不大,引擎会按偏移切片。

4.2 Modbus TCP / RTU(电表/变频器等)

地址 0 基。HR=保持寄存器(03),IR=输入寄存器(04),COIL=线圈(01),DISCRETE=离散输入(02)。注意 float32 占 2 个寄存器、float64 占 4 个。

codeaddrExprdataType含义(示例电表)
VOLTHR:0float32A 相电压
CURRHR:2float32A 相电流
POWERHR:4float32总有功功率
KWHHR:8float64正向电量(4 寄存器)
FREQHR:16uint16频率 ×100
SW_ONCOIL:0bool合闸状态
DI1DISCRETE:3bool开关量输入 3

数值不对先查两处:寄存器是不是 1 基(显示 40001 → 协议 0 基写 HR:0);以及浮点高低字顺序(连接参数里 wordOrder big/little)。

4.3 通用串口 RS-232/485 仪表(自定义协议)

先配“读指令”(请求帧 HEX + 校验方式),点位再按“指令代号:响应内字节偏移”引用。以某称重仪表为例,发送 01 03 00 00 00 02 + CRC16 后返回 4 字节重量:

读指令codeaddrExprdataType含义
R1 = 01 03 00 00 00 02 (crc16-modbus)WEIGHTR1:0float32净重 kg
同上STABLER1:4bool稳定位(第 5 字节)
UNITR1:5uint16单位码

串口连接参数要点:波特率/数据位/停止位/校验与仪表一致;一帧边界按“静默窗口”切分;同一串口多台设备时引擎自动串行请求。

五、缩放与单位示例

例如 0~4095 对应 0~1.0MPa 的压力:

scaleA = (1.0 - 0)/(4095 - 0) ≈ 0.0002442
scaleB = 0
precision = 3,unit = MPa

又比如温度 4–20mA 电流环读数为 400~2000,对应 -10~50℃:

scaleA = (50-(-10))/(2000-400) = 0.0375
scaleB = -10 - 0.0375×400 = -25

六、采集任务与存储建议

七、验证与转发

采集正常后:运行监控页应显示“在线”、落库行数增长;转发页 pending≈0、sent 增长。若转发为 0,依次检查:转发通道 enabled、设备过滤是否含该设备、目标地址/broker 可达。

八、常见问题速查

现象处理
测试连接失败IP/端口、网段、PLC PUT/GET、S7 槽位;串口是否被占用
连接成功但某点读不到地址/类型是否匹配(float32 2 寄存器);S7 DB 是否优化块
读到了但数值不对0 基 vs 1 基、字节序/字序、scale 是否要换算
转发 0转发通道/设备过滤/目标可达;看 dead 与日志
想直接体验?打开 在线 Demo下载软件
扫码加客服获取完整《部署与联调手册》
客服
扫码联系客服

扫码咨询