西门子模块6ES7331-7HF01-0AB0详细说明
为了保障系统的正常运行,定期对PLC系统进行检查和维护是必不可少的,而且还必须熟悉一般故障诊断和排除方法。
一、检查与维护
1.定期检查
PLC是一种工业控制设备,尽管在可靠性方面采取了许多措施,但工作环境对PLC影响还是很大的。所以,通常每个半年时间应对PLC做定期检查。如果PLC的工作条件不符合表1规定的标准,就要做一些应急处理,以便使PLC工作在滚规定的标准环境。
表1 周期性检查一览表
检查项目 | 检查内容 | 标准 |
交流电源 1.电压 2.稳定度 | 1.测量加在PLC上的电压是否为额定值 2.电压电源是否出现频繁急剧的变化 | 1.电源电压必须在工作电压范围内 2.电源电压波动必须在允许范围内 |
环境条件 温度 湿度 振动 粉尘 | 温度和湿度是在相应的范围内吗?(当PLC安装在仪表板上时,仪表板的温度可以认为是PLC的环境温度) | 0~55℃ 相对湿度85%以下 振幅小于0.5mm(10~55Hz) 无大量灰尘,盐分和铁屑 |
安装条件 | 基本单元和扩展单元是否安装牢固 基本单元和扩展单元的联接电缆是否完全插好 接线螺钉是否松动 外部接线是否损坏 | 安装螺钉必须上紧 联接电缆不能松动 联接螺钉不能松动 外部接线不能有任何外观异常 |
使用寿命 | 1.锂电池电压是否降低 2.继电器输出触点 | 1.工作5年左右 2.寿命300万次(35V以上) |
2.日常维护
PLC除了锂电池和继电器输出触点外,基本没有其它易损元器件。由于存放用户程序的随机存储器(RAM),计数器和具有保持功能的辅助继电器等均用锂电池保护,锂电池的寿命大约5年,当锂电池的电压逐渐降低达一定程度时,PLC基本单元上电池电压跌落指示灯亮。提示用户注意,有锂电池所支持的程序还可保留一周左右,必须更换电池,这是日常维护的主要内容。
调换锂电池步骤:
① 在拆装前,应先让PLC通电15S以上(这样可使作为存储器备用电源的电容器充电,在锂电池断开后,该电容可队PLC做短暂供电,以保护RAM中的信息不丢失);
② 断开PLC的交流电源
③ 打开基本单元的电池盖板
④ 取下旧电池,装上新电池
⑤ 盖上电池盖板
更换电池时间要尽量短,一般不允许超过3min。如果时间过长,RAM中的程序将消失。
二、故障查找
PLC有很强的自诊断能力,当PLC自身故障或外围设备故障,都可用PLC上具有的诊断指示功能的发光二极管的亮灭来诊断。
1.总体检查
根据总体检查流程图找出故障点的大方向,逐渐细化,以找出具体故障,如图1所示。
2.电源故障检查
电源灯不亮需对供电系统进行检查,检查流程图如图2所示。
3.运行故障检查
电源正常,运行指示灯不亮,说明系统已因某种异常而终止了正常运行,检查流程图如图3所示。
4.输入输出故障检查
输入输出是PLC与外部设备进行信息交流的通道,其是否正常工作,除了和输入输出单元有关外,还与联接配线,接线端子,保险管等元件状态有关。检查流程图如图4、图5所示。
5.外部环境的检查
影响PLC工作的环境因素主要有温度、湿度、噪音与粉尘,以及腐蚀性酸碱等。
三、故障的处理
图6-1 CPU装置、I/O扩展装置故障处理
序号 | 异常现象 | 可能原因 | 处理 |
1 | [POWER]LED灯不亮 | 1.电压切换端子设定不良 | 正确设定切换装置 |
2.保险熔断 | 更换保险管 | ||
2 | 保安管多次熔短 | 1.电压切断端子设定不良 | 正确设定 |
2.线路短路或烧坏 | 更换电源单元 | ||
3 | [RUN]LED灯不亮 | 1.程序错误 | 修改程序 |
2.电源线路不良 | 更换CPU单元 | ||
3.I/O单元号重复 | 修改I/O单元号 | ||
4.远程I/O电源关,无终端 | 接通电源 | ||
4 | [运转中输出]端没闭合([POWER]灯亮) | 电源回路不良 | 更换CPU单元 |
5 | 某以编号以后的继电器不动作 | I/O总线不良 | 更换基板单元 |
6 | 特定的继电器编号的输出(入)接通 | I/O总线不良 | 更换基板单元 |
7 | 特定单元的所有继电器不接通 | I/O总线不良 | 更换基板单元 |
图6-2 输入单元故障处理
序号 | 异常现象 | 可能原因 | 处理 |
1 | 输入全部不接通(动作指示灯也灭) | 1.未加外部输入电源 | 供电 |
2.外部输入电压低 | 加额定电源电压 | ||
3.端子螺钉松动 | 拧紧 | ||
4.端子板联接器接触不良 | 把端子板补充插入、锁紧。更换端子板联接器 | ||
2 | 输入全部断开(动作指示灯也灭) | 输入回路不良 | 更换单元 |
3 | 输入全部不关断 | 输入回路不良 | 更换单元 |
4 | 特定继电器编号的输入不接通 | 1.输入器件不良 | 更换输入器件 |
2.输入配线断线 | 检查输入配线 | ||
3.端子螺钉松弛 | 拧紧 | ||
4.端子板联接器接触不良 | 打把端子板充分插入、锁紧。更换端子板联接器 | ||
5.外部输入接触时间短 | 调整输入器件 | ||
6.输入回路不良 | 更换单元 | ||
7.程序的OUT指令中用了输入继电器编号 | 修改程序 | ||
5 | 特定继电器编号的输入不关断 | 1.输入回路不良 | 更换单元 |
2.程序的OUT指令中用了输入继电器编号 | 修改程序 | ||
6 | 输入不规则的ON/OFF动作 | 1.外部输入电压低 | 使外部输入电压在额定质范围 |
2.噪音引起的误动作 | 抗噪音措施 .安装绝缘变压器 .安装尖峰抑制器 .用屏蔽线配线等 | ||
3.端子螺钉松动 | 拧紧 | ||
4.端子板联接器接触不良 | 把端子板充分插入、锁紧。更换端子板联接器 | ||
7 | 异常动作的继电器编号为8点单位 | 1.COM端螺钉松动 | 拧紧 |
2.端子板联接器接触不良 | 端子板充分插入、锁紧。更换端子板联接器 | ||
3.CPU不良 | 更换CPU单元 | ||
8 | 输入动作指示灯亮(动作正常) | LED坏 | 更换单元 |
表6-3 输出单元故障处理
序号 | 异常现象 | 可能原因 | 处理 |
1 | 输出全部不接通 | 1.未加负载电源 | 加电源 |
2.负载电源电压低 | 使电源电压为额定值 | ||
3.端子螺钉松动 | 拧紧 | ||
4.端子板联接器接触不良 | 端子板补充插入、锁紧。更换端子板联接器 | ||
5.保险管熔断 | 更换保险管 | ||
6.I/O总线接触不良 | 更换单元 | ||
7.输出回路不良 | 更换单元 | ||
2 | 输出全部不关断 | 输出回路不良 | 更换单元 |
3 | 特定继电器编号的输出不接通(动作指示灯灭) | 1.输出接通时间短 | 更换单元 |
2.程序中指令的继电器编号重复 | 修改程序 | ||
3.输出回路不良 | 更换单元 | ||
4 | 特定继电器编号的输出不接通(动作指示灯亮) | 1.输出器件不良 | 更换输出器件 |
2.输出配线断线 | 检查输出线 | ||
3.端子螺钉松动 | 拧紧 | ||
4.端子联接接触不良 | 端子充分插入、拧紧。 | ||
5.继电器输出不良 | 更换继电器 | ||
6.输出回路不良 | 更换单元 | ||
5 | 特定继电器编号的输出不关断(动作指示灯灭) | 1.输出继电器不良 | 更换继电器 |
2.由于漏电流或残余电压而不能关断 | 更换负载或加假负载电阻 | ||
6. | 特定继电器编号的输出不关断(动作指示灯亮 | 1.程序out指令的继电器编号重复 | 修改程序 |
2.输出回路不良 | 更换单元 | ||
7. | 输出出现不规则的ON/OFF现象 | 1.电源电压低 | 调整电压 |
2.程序中out指令的继电器编号 | 修改程序 | ||
3.噪音引起误动作 | 抗噪音措施:装抑制器 装绝缘变压器 用屏蔽线配线 | ||
4.端子螺钉松动 | 拧紧 | ||
5.端子联接接触不良 | 端子充分插入、拧紧。 | ||
8. | 异常动作的继电器编号为点单位 | 1.COM端子螺钉松动 | 拧紧 |
2.端子联接接触不良 | 端子充分插入、拧紧。 | ||
3.保险管熔断 | 更换保险管 | ||
4.CPU不良 | 更换CPU单元 | ||
9 | 输出正常指示灯不良 | LED坏 | 更换单元 |
网友ktissot在用下面3条指令将浮点数转换为双整数时,发现了一个神秘的现象。
l md0
rnd //浮点数四舍五入
t md4
我们知道,大的正的双整数是,大于这个数,rnd指令转换会出错。
但是他的帖子说实际上能转换的大的浮点数不是2,而是2。
这一段本应正常转换的区间转换会出错,为什么转换出错的分界点是2,这里面隐藏了什么秘密?
这件事引起我极大的兴趣,为此我用仿真做了大量的实验,下面是我做实验发现的更多的现象:
1.转换出错的情况
rnd指令的帮助中说:“如果超出允许范围,则状态位ov和os被置位为1。结果存在累加器1中”。“出现错误(使用了不能表示为32位整数的nan或浮点数)时不执行转换并显示溢出。”。
下图用程序状态监控状态字status word。
大于2时转换出错。
大于2到2这一段照理说在应该在能转换的范围里,但是转换也会出错,状态字的ov和os位(第4、5位)被置位为1(见下图)。md4中是没有转换的浮点数,而不是双整数。转换出错的分界点是2。
2.转换成功的情况
小于左右转换结果完全正确。转换成功时ov和os为0。
小于2到这一段可以转换,但是转换有误差。
接近2时,大误差为64。
大于2 ~ 2时(区间范围为128.0),转换后得到的双整数均为(16#7fff ff80,见下图)。转换结果是区间中点的值,( + )/2= 。
大于2 ~ 2时,转换后得到的双整数均为(16#7fff ff00)。
大于2 ~ 2时,转换后得到的双整数均为(16#7fff fe80)。
经过分析,我已经找到了上述现象的原因,结果暂不公布,希望有兴趣的网友一起来分析一下,共享解决问题的快乐。
3.转换结果分析
大于2 ~ 2时转换后得到(16#7fff ff80)。
大于2 ~ 2时转换后得到(16#7fff ff00)。
大于2 ~ 2时转换后得到(16#7fff fe80)。
上述3个区间内部的间隔为128.0,转换结果为区间的中点( + )/2= 。
所以这种转换并不**,大误差为128/2=64。
浮点数转换为双整数的转换误差的根本原因是32位浮点数和32位双整数的有效位数的差异造成的。
浮点数由一位符号位、8位指数和尾数的小数部分(23位)组成。尾数的位数决定了浮点数的精度。尾数的整数部分为1,小数部分为23位,所以尾数的有效数字为24位。
双整数除去一位符号位,其有效位数为31位,因此浮点数的有效位数比双整数少7位。
2 ~ 2相差128.0,它们对应的整数为31位有效数字,这些浮点数输入后,因为浮点数的有效位数只有24位,它们的尾数相同,对应的十六进制表示的浮点数均为16#4eff ffff,或2.17484e+009(注意有效尾数为十进制7位,而不是对应的整数的10位)。所以转换为双整数后均为。
ktissot网友说:“这就像看一片湖水一样,你可以看到水和浪花,但是看不到水分子。”由于有效位数较小,浮点数不能分辨“水分子”2 ~ 2,我们只能看到“浪花”(16#7fff ff80)。
如果浮点数较小,例如小于16777215(16#ff ffff),整数部分只有24位,转换后就没有上述的误差了。在此基础上增大,整数部分的位数越大,误差越大。
因为有效位数相差7位,在接近双整数大值的区段,浮点数的尾数相差一个数时,转换为双整数后,相差128。2的7次方等于128。
4.高端转换出错的原因分析
为什么高端大于2的数不能正确地转换呢?请注意小于2到大于2这段范围刚好是64.0(128.0的一半)。rnd指令在转换时将这段范围的尾数四舍五入后,尾数的低位加1,相当于转换后的整数加128(16#80),由上述的16#7fff ff80()加16#80后变为16#,超出了双整数整数的允许范围,产生了溢出,所以转换出错