果真在FC11里找到这个地址,使用了“DB10.DBD154”。在DB1.DBD154里有这个变量的定义,并且与前后逻辑相符,显然是编程人员笔误,多加了个“0”。修正后,更新在线程序,系统故障灯消失。
到现场确认为CPU自身报错,CPU型号为314C-2DP。编程器在线,查看CPU的诊断区,CPU连续记录地址访问错误,定位为DB10,地址为154,查看PLC的程序根本就没有DB10。由于具备那个处理该故障的OB块,因此,CPU没有停机,而是报了系统故障,亮了SF灯。
PLC的容量包括I/O点数和用户存储容量两个方面。
(一)I/O点数的选择
PLC平均的I/O点的价格还比较高,因此应该合理选用PLC的I/O点的数量,在满足控制要求的前提下力争使用的I/O点较少,但必须留有一定的裕量。
通常I/O点数是根据被控对象的输入、输出信号的实际需要,再加上10%~15%的裕量来确定。
(二) 存储容量的选择
用户程序所需的存储容量大小不仅与PLC系统的功能有关,而且还与功能实现的方法、程序编写水平有关。一个有经验的程序员和一个初学者,在完成同一复杂功能时,其程序量可能相差25%之多,所以对于初学者应该在存储容量估算时多留裕量。
PLC的I/O点数的多少,在很大程序上反映了PLC系统的功能要求,因此可在I/O点数确定的基础上,按下式估算存储容量后,再加20%~30%的裕量。
存储容量(字节)=开关量I/O点数×10 + 模拟量I/O通道数×100
另外,在存储容量选择的同时,注意对存储器的类型的选择。
a)汇点式输入 b)分组式输入
汇点式的开关量输入模块所有输入点共用一个公共端(COM);而分组式的开关量输入模块是将输入点分成若干组,每一组(几个输入点)有一个公共端,各组之间是分隔的。分组式的开关量输入模块价格较汇点式的高,如果输入信号之间不需要分隔,一般选用汇点式的。
3)注意同时接通的输入点数量
对于选用高密度的输入模块(如32点、48点等),应考虑该模块同时接通的点数一般不要**过输入点数的60%。
4)输入门槛电平
为了提高系统的可靠性,必须考虑输入门槛电平的大小。门槛电平越高,抗干扰能力越强,传输距离也越远,具体可参阅PLC说明书。
2. 开关量输出模块的选择
开关量输出模块是将PLC内部低电压信号转换成驱动外部输出设备的开关信号,并实现PLC内外信号的电气隔离。选择时主要应考虑以下几个方面:
1)输出方式
开关量输出模块有继电器输出、晶闸管输出和晶体管输出三种方式。
继电器输出的价格便宜,既可以用于驱动交流负载,又可用于直流负载,而且适用的电压大小范围较宽、导通压降小,同时承受瞬时过电压和过电流的能力较强,但其属于有触点元件,动作速度较慢(驱动感性负载时,触点动作频率不得**过1HZ)、寿命较短、可靠性较差,只能适用于不频繁通断的场合。
对于频繁通断的负载,应该选用晶闸管输出或晶体管输出,它们属于无触点元件。但晶闸管输出只能用于交流负载,而晶体管输出只能用于直流负载。
2)输出接线方式
开关量输出模块主要有分组式和分隔式两种接线方式,如图6-3所示。
2、PLC重新启动后,SF灯不消失。周边模块没有故障,各外部设备通讯正常。
没有地方设,每10秒采一次你应该在OB35中调用你的采样FC或者FB
======================================
OB35 循环组织块,用于按照所设定的循环时间作循环调用。
OB1则根据程序长短作循环调用。
举例说明:
OB35设定循环时间为2秒,那每2秒执行一次OB35中的程序。只要CPU处于运行状态,那么每2秒就执行一遍。
OB1的循环时间是不可设定的,只能设定较大循环时间,比如你OB1的较大循环时间为850MS,而你的OB1中的程序只执行了150MS,那么剩下的700MS时间立即作废,新的循环从150MS后立即开始,只要程序不**过850MS,那么就反复的执行,也就是说,这次循环时间有可能100MS,下次有可能150MS。
请记住,当CPU从STOP状态到RUN状态时,首先执行OB100->OB1->OB35,当以这个顺序执行完毕后,OB35按设定的时间循环调用,和OB1无关,OB1根据程序执行时间循环调用。
知道原因了,就要查故障源,地址访问有两种可能,一种是显式使用,就是直接用诸如DB10.DBW10这样指令使用。另外一种是间接寻址,这是高级用法,老外经常这么用,这样程序就可以通用了。但是,这种方式使用的地点非常难查找。