详细介绍
西门子6FC5357-0BB33-0AA0
6FC5357-0BB33-0AA0
SINUMERIK 840D/DE NCU 573.3,650MHz,64MB 不带系统软件 存储器:NC 2.5MB,PLC 96KB PROFIBUS-DP 准备 符合 IEC 61508
问题:
调试阶段,诊断DP主站系统中的错误,有哪几种方法?
解答:
下列原因可能导致PROFIBUS DP网络发生故障:
- 总线电缆接线/安装错误
- DP主站和DP从站组态错误
- 相关的PROFIBUS DP网络组态错误
- CPU程序中通信寻址错误
下面,我们将介绍用于处理上述各种故障源的诊断工具。
总线电缆接线/安装错误
BT200 BUS TESTER
BT200 Bus Tester(BT200总线测试工具)用于检查接线。PROFIBUS电缆未处于使用中时,可使用BT200 Bus Tester进行下列测试:
检查PROFIBUS电缆:
- 电线破损
- 防护层破损
- 导线之间短路或者导线和防护层之间短路
- 定位数据电缆破损/短路的位置
- 辨别故障原因
- 接线不正确
- 安装配线的长度
网络处于使用中时,也可以使用BT200 Bus Tester进行诊断:
检查从站的可用性:
- 将可访问的从站列表
- 选择性地寻址独立的从站
检查主站和从站的RS 485接口:
- RS 485 驱动
- 线路终端电源
- RTS 信号
- 显示PROFIBUS DP地址
使用示波器测量信号电平
使用示波器可以显示PROFIBUS上的信号电平。应当使用矩形显示窗口的示波器,需 要专业人员来对示波器图像进行评估.
DP主站和DP从站的组态
在HW Configuration中可以在线或者离线监视总线,从而检查总线上连接的DP主站和DP从站的组态。可 以从CPU中将组态下载下来用于离线分析。
如果在HW Configuration中对组态进行在线分析,可以识别故障或者有缺陷的模块。对于支持诊断的模块,也 可以探测潜在的通道故障(如断线)。
图 1:HW Configuration的在线视图
如果模块发生故障,则故障时间被记录在诊断缓冲区中。
西门子6FC5357-0BB33-0AA0
图 2:从站发生故障时CPU的诊断缓冲区
PROFIBUS DP网络
有些用于PROFIBUS的PC接口可提供诊断功能。可通过“Set PG/PC Interface”或“Set PC Station”找到它们。
在这里,可以读出实际总线参数,并以PROFIBUS可用节点的形式表示。
图 3:SIMATIC Net 诊断工具
AMPROLYZER
Amprolyzer软件也可用于分析PROFIBUS网络,具有下列功能。
- 总线上所有PROFIBUS节点的生命状态监视
- 节点当前运行状态的总体诊断
- 总线时间统计,如超时和消息循环
- 传输数据自动检测
- 针对事件和消息的内容(包含时间标志),使用触发器和过滤器选项进行消息记录
- 以Excel格式保存和导出消息记录
问题:
如何为S7-22x编程一个时间控制的中断?
解答:
下列CPU可以处理一个时间控制的中断:
中断 | CPU221 | CPU222 | CPU224 | CPU226 | CPU226XM |
支持的时间控制中断的个数 | 2 | 2 | 2 | 2 | 2 |
中断个数 | 0 和 1 | 0 和 1 | 0 和 1 | 0 和 1 | 0 和 1 |
可能的中断程序的个数 | INT 0 | INT 0 | INT 0 | INT 0 | INT 0 |
S7-200 支持一个或更多的时间控制的中断。可以用时间控制中断来定义要在周期中执行的动作。定义的周期时间以 1 毫秒为单位。范围在 1毫秒(1)至 255 毫秒(255)间。在特殊标志字节SMB34中写入中断 0 的周期时间,在SMB35中写入中断 1的周期时间。
每当延时时间到达时,时间控制中断事件就会调用相应的中断程序。通常可以使用时间控制中断控制模拟量输入的定期采样。当把一个中断程序分配给一个时间控制中断事件时,时间控制中断就被激活后并开始计时。在样例中,这是启动子程序“SBR 0”所做的一的事情。系统确定该周期时间使后续的修改不会影响到该周期时间。如果想要修改周期时间,必须为周期时间一个新值然后重新将中断程序赋予该时间控制的中断。重新赋予时,函数会删除以前赋予中累计的时间值并以新值开始运行时间。
命令的作用 | Command | Operand | Example of |
主程序 |
|
|
|
网络 1 |
|
|
|
通过查询只在*个周期里置“1”的标志,给该事件分配一个少有的中断程序号 | LD | SM 0.1 | SM 0.1 |
在*个循环中调用子程序“0” | CALL | 0 |
|
主程序结束 | MEND |
|
|
启动子程序“0” | SBR | 0 |
|
使用“确定为“ 1 ”的系统标志SM 0.1 ”,设置时间控制段的时间间隔为 100 * 1ms = 100 ms | LD | SM 0.1 |
|
允许使用所有中断 | ENI |
|
|
分配时间控制中断“0”到中断程序“0” | ATCH | INT,EVENT | 0,10 |
终止子程序 | RET |
|
|
启动中断程序 | INT | 0 |
|
现在可以写想要每隔 100 毫秒处理一次的程序 | ....... | .... | .... |
从中断程序返回 | RETI |
|
|
注意事项:
- CPU根据中断发生的次序和它的优先级状态对其进行处理。因此对于中断处理始终只能有 一个程序是激活的。如果一个中断程序正在被处理,那么它就会首先被处理完毕。它不会被后面出现的中断程序所打断即使这个程序有更高的优先级。当另一个中断正在被处理时,发生了一个中断,那么后面的中断就会被放入队列中等待以后的处理。时控中断队列中多可放入8个中断。
- 有可能发生出现的中断要多于队列里可容纳的中断个数的情况,这样,系统就会发出队列溢出标志,而该标志指出不能被包括在队列里的中断事件的类型。下面的表格为发生队列溢出时所设置的特殊标志。只能在中断程序中使用位 SM 4.0 至 4.2,因为当中断队列处理完毕后,主程序的处理继续进行时它们会被复位。
队列 | 特殊标志 |
通讯中断的队列溢出 | SM 4.0 |
I/O中断的队列溢出 | SM 4.1 |
时间控制中断的队列溢出 | SM 4.2 |