Skip to content

Latest commit

 

History

History
422 lines (312 loc) · 9.73 KB

File metadata and controls

422 lines (312 loc) · 9.73 KB

S7 Debug Tool 用户指南

目录

  1. 快速入门
  2. 详细功能说明
  3. 数据类型操作示例
  4. 批量操作指南
  5. 高级功能
  6. 常见问题解答

快速入门

第一步:启动程序

  1. 双击运行 S7DebugTool.exe
  2. 程序主界面将显示,包含三个主要区域:
    • 连接配置区:顶部区域,用于设置PLC连接参数
    • 操作区:中间标签页区域,包含三个功能标签
    • 日志区:底部区域,显示通信日志

第二步:连接PLC

  1. 输入连接参数

    • IP地址:输入PLC的IP地址(例如:192.168.0.1)
    • 机架号
      • S7-300/400:通常为 0
      • S7-1200/1500:通常为 0
    • 插槽号
      • S7-300/400:通常为 2
      • S7-1200/1500:通常为 1
  2. 建立连接

    • 点击"连接"按钮
    • 观察右侧连接状态,显示"已连接"表示成功
    • 日志窗口将显示详细的连接过程

第三步:读取数据(快速示例)

  1. 切换到"数据类型读写"标签页
  2. 选择内存区域为"数据块(DB)"
  3. 输入DB块号(例如:1)
  4. 输入起始地址(例如:0)
  5. 选择数据类型(例如:Int)
  6. 点击"读取"按钮
  7. 结果将显示在读取结果框中

详细功能说明

1. 数据类型读写标签页

这是用于读写特定数据类型的主要界面。

读取数据

参数设置

  • 内存区域:选择要读取的内存区域

    • 数据块(DB):需要输入DB块号
    • 输入(I):输入映像区
    • 输出(Q):输出映像区
    • 标志位(M):内部标志区
  • 数据类型:选择要读取的数据类型

    • Bool:布尔值(需要设置位地址)
    • Byte:单字节
    • Word:2字节无符号整数
    • DWord:4字节无符号整数
    • Int:2字节有符号整数
    • DInt:4字节有符号整数
    • Real:4字节浮点数
    • LReal:8字节双精度浮点数
    • String:字符串
    • DateTime:日期时间
  • 起始地址:数据的起始字节地址

  • 位地址:仅在读取Bool类型时使用(0-7)

显示格式

  • 十六进制:以16进制格式显示
  • 十进制:以10进制格式显示
  • ASCII:以ASCII字符显示

写入数据

数据输入格式说明

数据类型 输入格式示例 说明
Bool true/false 或 1/0 布尔值
Byte 01 02 03 或 1,2,3 字节数组
Word 65535 0-65535范围
DWord 4294967295 0-4294967295范围
Int -32768 -32768到32767
DInt -2147483648 32位有符号整数
Real 3.14159 单精度浮点数
LReal 3.141592653589793 双精度浮点数
String Hello World 文本字符串
DateTime 2024-01-15 10:30:00 日期时间格式

2. 批量字节读写标签页

用于批量读写原始字节数据,适合调试和数据分析。

批量读取功能

特点

  • 支持读取大量连续字节数据
  • 自动处理PDU大小限制,分块读取
  • 支持地址显示,方便定位数据

使用步骤

  1. 选择内存区域
  2. 设置起始地址
  3. 输入读取长度(字节数)
  4. 选择显示格式
  5. 勾选"显示地址"可查看每行数据的地址
  6. 点击"批量读取"

显示格式说明

  • 十六进制格式

    000000: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
    000016: 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20
    
  • 十进制格式

    000000:   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16
    000016:  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32
    
  • ASCII格式

    000000: Hello World.....
    000032: Test Data.......
    

批量写入功能

支持的输入格式

  1. 十六进制格式(空格分隔):

    01 02 03 04 05 06 07 08
    
  2. 十六进制格式(连续):

    0102030405060708
    
  3. 十进制格式(逗号分隔):

    1,2,3,4,5,6,7,8
    
  4. 混合格式

    0x01 0x02 0x03 0x04
    

3. 批量任务标签页

用于配置和执行多个读写任务。

功能特点

  • 创建任务队列
  • 批量执行多个操作
  • 查看每个任务的执行结果
  • 支持任务的启用/禁用

任务配置参数

  • 启用:是否执行该任务
  • 操作:读取或写入
  • 区域:DB/I/Q/M
  • DB号:数据块编号
  • 地址:起始地址
  • 长度:数据长度
  • 数据:写入操作的数据

数据类型操作示例

示例1:读取整数值

场景:读取DB1.DBW10处的整数值

  1. 内存区域:数据块(DB)
  2. DB块号:1
  3. 起始地址:10
  4. 数据类型:Int
  5. 点击"读取"

示例2:写入浮点数

场景:向DB2.DBD20写入浮点数3.14

  1. 内存区域:数据块(DB)
  2. DB块号:2
  3. 起始地址:20
  4. 数据类型:Real
  5. 写入值:3.14
  6. 点击"写入"

示例3:读取位值

场景:读取M10.3的位状态

  1. 内存区域:标志位(M)
  2. 起始地址:10
  3. 位地址:3
  4. 数据类型:Bool
  5. 点击"读取"

示例4:写入字符串

场景:向DB3.DBB50写入字符串

  1. 内存区域:数据块(DB)
  2. DB块号:3
  3. 起始地址:50
  4. 数据类型:String
  5. 写入值:Hello PLC
  6. 点击"写入"

批量操作指南

批量读取示例

场景:读取DB100从地址0开始的1000个字节

  1. 切换到"批量字节读写"标签页
  2. 设置参数:
    • 内存区域:数据块(DB)
    • DB块号:100
    • 起始地址:0
    • 长度:1000
  3. 选择显示格式:十六进制
  4. 勾选"显示地址"
  5. 点击"批量读取"

注意:程序会自动处理PDU限制,将1000字节分成多次读取

批量写入示例

场景:向M区地址100写入一组测试数据

  1. 设置参数:
    • 内存区域:标志位(M)
    • 起始地址:100
  2. 输入数据:
    FF 00 FF 00 AA BB CC DD
    
  3. 点击"批量写入"
  4. 观察状态提示确认写入成功

批量任务示例

场景:定期读取多个数据点

  1. 切换到"批量任务"标签页
  2. 点击"添加任务"创建新任务
  3. 配置每个任务:
    • 任务1:读取 DB1.DBW0,长度2
    • 任务2:读取 DB1.DBD10,长度4
    • 任务3:读取 DB2.DBW0,长度2
  4. 点击"执行所有"
  5. 查看结果列的返回数据

高级功能

1. PDU大小自动处理

程序会自动协商PDU大小,并在读写大量数据时自动分块:

  • 默认PDU:240字节
  • 自动分块:当请求数据超过PDU限制时
  • 透明处理:用户无需关心分块细节

2. 字节序自动转换

S7协议使用大端字节序,程序自动处理转换:

  • 读取时:自动从大端转换为小端
  • 写入时:自动从小端转换为大端
  • 支持所有数值类型的正确转换

3. 日志功能

日志特点

  • 实时显示所有通信过程
  • 包含详细的协议分析
  • 支持自动滚动
  • 可清空日志

日志信息包括

  • 连接过程
  • 发送的数据包
  • 接收的响应
  • 错误信息
  • 操作结果

4. 错误诊断

程序提供详细的错误信息帮助诊断问题:

  • 连接错误:网络、IP、端口问题
  • 读写错误:地址、权限、数据块问题
  • 协议错误:PDU、返回码问题

常见问题解答

Q1:连接不上PLC怎么办?

检查步骤

  1. 确认PLC IP地址正确
  2. 使用ping命令测试网络连通性
  3. 检查机架号和插槽号设置
  4. 确认PLC允许外部访问(检查防护等级)
  5. 检查防火墙是否阻止端口102

Q2:读取数据全是0或FF?

可能原因

  1. 数据块不存在或未初始化
  2. 地址超出有效范围
  3. 没有读取权限
  4. 数据类型选择错误

Q3:写入操作失败?

解决方法

  1. 确认PLC处于RUN模式
  2. 检查写保护设置
  3. 验证数据格式正确
  4. 确认地址范围有效

Q4:如何读取超过240字节的数据?

程序会自动处理,直接输入需要的长度即可。程序会:

  1. 自动检测PDU大小
  2. 将请求分成多个小块
  3. 合并返回结果
  4. 在日志中显示分块过程

Q5:Bool类型的位地址怎么理解?

  • 字节地址:定位到具体的字节
  • 位地址:定位到字节内的具体位(0-7)
  • 例如:M10.3 表示M区第10字节的第3位

Q6:String类型的长度如何确定?

S7字符串格式:

  • 第1字节:最大长度
  • 第2字节:实际长度
  • 后续字节:字符数据
  • 读取时需要包含头部2字节

Q7:DateTime格式是什么?

S7 DATE_AND_TIME格式:

  • 8字节BCD编码
  • 包含年月日时分秒毫秒
  • 程序自动转换为标准格式显示

Q8:如何导出读取的数据?

目前可以:

  1. 从结果框复制数据
  2. 使用日志功能记录操作
  3. 批量任务结果可以选择复制

Q9:支持哪些PLC型号?

支持所有使用S7协议的西门子PLC:

  • S7-300系列
  • S7-400系列
  • S7-1200系列
  • S7-1500系列

Q10:是否支持写入到输入区?

输入区(I)通常是只读的,由物理输入决定。但在某些情况下(如仿真模式),可能允许写入。


安全建议

  1. 测试环境优先:先在测试环境验证操作
  2. 备份数据:操作前备份重要数据
  3. 权限控制:设置合适的PLC访问权限
  4. 监控操作:使用日志功能记录所有操作
  5. 谨慎写入:写入操作可能影响设备运行

技术支持

如遇到问题,请:

  1. 查看日志获取详细错误信息
  2. 参考故障排除章节
  3. 提交Issue到项目仓库
  4. 提供详细的错误描述和日志

S7 Debug Tool v1.0

专业的西门子PLC调试工具