本期擂台为自由自由擂台,旨在希望大家就自己最熟悉的一类PLC举例,编写出一个比较实用的程序,供大家学习!同时也要求 对自己的程序做出一定的解释!
PLC的类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!
工控PLC擂台每周一期,本期待98期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:50积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换
上传一个最近接的新项目,欧姆龙PLC在40吨抓斗+吊钩两用门做起重机上的典型应用。
配置:PLC-CP1H。CPU:CP1H-XA40DR-A ;扩展模块:CP1W-40EDR ;通讯 模块:CP1W-CIF12 。
起升机构程序
LD 3100.00
OR 21.00
AND 4.05
AND 4.11
AND 5.00
AND 5.02
AND 5.11
AND 6.00
AND 6.02
AND 4.01
AND 4.02
ANDNOT 1200.00
OUT 21.00
LD 3100.00
OR 21.01
ANDNOT 0.00
AND 0.01
ANDNOT 0.08
AND 0.09
AND 3.04
AND 3.05
AND 3.06
OUT 21.01
LD 3100.00
OR 21.02
AND 0.06
ANDNOT 0.07
AND 1.02
ANDNOT 1.03
OUT 21.02
LD 2.11
LD 8.02
AND 101.01
ORLD
LD 8.03
AND 101.02
ORLD
AND 21.00
OUT 21.03
LD 21.03
OR 21.04
ANDNOT T0000
OUT 21.04
ANDNOT 21.03
TIM 0000 #10
LD 21.00
AND 3100.02
ANDNOT 3100.01
AND 21.02
AND 3.03
OUT 101.03
LD 21.00
OUT TR0
AND 3100.01
ANDNOT 3100.02
AND 21.01
OUT TR1
ANDNOT 4.09
ANDNOT 8.02
LD 3100.06
ANDNOT 3100.07
LD 3100.07
ANDNOT 3100.06
ANDNOT 2.11
ORLD
ANDLD
LD 21.03
ORNOT 21.04
ANDLD
OUT 100.00
LD TR1
ANDNOT 5.09
ANDNOT 8.03
LD 3100.06
ANDNOT 3100.07
ANDNOT 2.11
LD 3100.07
ANDNOT 3100.06
ORLD
ANDLD
LD 21.03
ORNOT 21.04
ANDLD
OUT 100.02
LD TR0
AND 3100.02
ANDNOT 3100.01
AND 21.02
OUT TR0
ANDNOT 3.03
OUT TR1
ANDNOT 4.08
ANDNOT 8.02
LD 3100.06
ANDNOT 3100.07
LD 3100.07
ANDNOT 3100.06
ANDNOT 2.11
ORLD
ANDLD
LD 21.03
ORNOT 21.04
ANDLD
OUT 100.01
LD TR1
ANDNOT 5.08
ANDNOT 8.03
LD 3100.06
ANDNOT 3100.07
ANDNOT 2.11
LD 3100.07
ANDNOT 3100.06
ORLD
ANDLD
LD 21.03
ORNOT 21.04
ANDLD
OUT 100.03
LD TR0
AND 3.03
AND 8.01
OUT TR0
ANDNOT 4.08
ANDNOT 4.09
LD 3100.06
ANDNOT 3100.07
LD 3100.07
ANDNOT 3100.06
ANDNOT 2.11
ORLD
ANDLD
LD 21.03
ORNOT 21.04
ANDLD
OUT 101.01
LD TR0
ANDNOT 5.08
ANDNOT 5.09
LD 3100.06
ANDNOT 3100.07
ANDNOT 2.11
LD 3100.07
ANDNOT 3100.06
ORLD
ANDLD
LD 21.03
ORNOT 21.04
ANDLD
OUT 101.02
LD 21.00
LD 3100.01
OR 3100.02
ANDLD
OUT TR0
LD 4.08
OR 4.09
LD 8.02
AND 8.04
ORLD
ANDLD
LD TR0
AND 3102.02
OUT TR1
AND 5.08
ORLD
OUT 101.04
LD TR1
AND 4.08
LD TR0
LD 5.08
OR 5.09
LD 8.03
AND 8.05
ORLD
ANDLD
ORLD
OUT 101.05
LD TR0
ANDNOT 21.03
LDNOT 4.08
AND 5.08
LDNOT 5.08
AND 4.08
ORLD
LDNOT 4.09
AND 5.09
ORLD
LDNOT 5.09
AND 4.09
ORLD
LDNOT 5.01
AND 6.01
ORLD
LDNOT 6.01
AND 5.01
ORLD
ANDLD
TIM 0001 #5
LD 21.00
OUT TR0
AND 3100.03
OUT TR1
LD 8.01
OR 4.08
OR 4.09
OR 5.08
OR 5.09
ANDLD
LDNOT 5.04
ORNOT 6.04
AND 21.05
LD 5.03
AND 6.03
ORLD
ANDLD
OUT 100.04
LD TR1
LDNOT 5.07
ORNOT 6.07
ANDLD
OUT TR2
ANDNOT T0003
TIM 0002 #8
LD TR2
AND T0002
TIM 0003 #8
LD TR1
AND T0002
OUT 21.05
LD TR0
AND 3100.04
OUT TR0
ANDNOT 8.02
ANDNOT 8.03
AND 5.03
AND 6.03
LDNOT 5.05
ORNOT 6.05
ANDNOT 21.05
LD 5.04
AND 6.04
ORLD
ANDLD
OUT 100.05
LD TR0
AND 5.04
AND 6.04
LDNOT 5.06
ORNOT 6.06
AND 21.05
LD 5.05
AND 6.05
ORLD
ANDLD
OUT 100.06
LD TR0
AND 5.05
AND 6.05
LDNOT 5.07
ORNOT 6.07
ANDNOT 21.05
LD 5.06
AND 6.06
ORLD
ANDLD
OUT 100.07
LD TR0
AND 5.06
AND 6.06
LD 21.05
LD 5.07
AND 6.07
ORLD
ANDLD
OUT 101.00
我来个常用的,西门子S7-300编写的程序:模拟量处理模块FC105
FC105
SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:
OUT = [ ((FLOAT (IN) -K1)/(K2-1)) * (HI_LIM-O_LIM)] + LO_LIM
常数K1和K2根据输入值是BIPOLAR还是UNIPOLAR设置。
BIPOLAR:假定输入整型值介于 7648与27648之间,因此K1 = -7648.0,K2 = +27648.0
UNIPOLAR:假定输入整型值介于0和27648之间,因此K1 = 0.0,K2 = +27648.0
如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。
通过设置LO_LIM > HI_LIM可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。
FC105参数
参数 说明 数据类型 存储区 描述
EN 输入 BOOL I、Q、M、D、L 使能输入端,信号状态为1时激活该功能。
ENO 输出 BOOL I、Q、M、D、L 如果该功能的执行无错误,该使能输出端信号状态为1。
IN 输入 INT I、Q、M、D、L、P、常数 欲转换为以工程单位表示的实型值的输入值。
HI_LIM 输入 REAL I、Q、M、D、L、P、常数 以工程单位表示的上限值。
LO_LIM 输入 REAL I、Q、M、D、L、P、常数 以工程单位表示的下限值。
BIPOLAR 输入 BOOL I、Q、M、D、L 信号状态为1表示输入值为双极性。信号状态0表示输入值为单极性。
OUT 输出 REAL I、Q、M、D、L、P 转换的结果。
RET_VAL 输出 WORD I、Q、M、D、L、P 如果该指令的执行没有错误,将返回值W#16#0000。对于W#16#0000以外的其它值,
如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。
本文所示的程序是我在08年搞的项目设计,是由S7-200编程的,配有工控机,选用组态王软件,对PLC随时上传的探伤数据进行及时分类处理,并填写于对应数据表内给予显示。且具有将报表数据存入数据库可供将来查询及打印等功能,并配有动画显示现场运行状况(见下面图二)。由于本擂台要求是PLC编程,又考虑全写出使文章篇幅太长,故对组态王编程内容不作详细介绍,只将与PLC接口、数据传递做简单说明。
一、PLC 的I / O口定义:
I0.0:为自动与手动程序转换开关; I0.1:为自动程序下的启动按钮;
I0.2:为自动程序下的停止按钮; I0.3:为板面探头1起落按钮;
I0.4:为板面探头2起落按钮; I0.5:为板面探头1磁化按钮;
I0.7:为板边探头1起落按钮; I1.0:计数器复位按钮(又接Q1.5输出口)
I1.1:为板边探头2起落按钮; I1.2:为板边探头1磁化按钮;
I1.3:为板边探头2磁化按钮; I1.4:打标按钮
I1.5:计数装置(编码器)起落按钮; I1.6:板面伤信号
I1.7:板边伤信号 I2.0:前光电开关;
I2.1:后光电开关; I2.2:为板面探头2磁化按钮;
I2.3:探头保护装置起落开关;
Q0.0:自动/手动指示 Q0.1:自动工作指示灯
Q0.2:板面探头1起落阀; Q0.3:板面探头2起落阀;
Q0.4:板面探头1磁化; Q0.5:板面探头2磁化;
Q0.6:板边探头1起落阀; Q0.7:板边探头2起落阀;
Q1.0:板边探头1磁化; Q1.1:板边探头2磁化;
Q1.2:打标 Q1.3:计数装置起落阀
Q1.4:运行报警灯; Q1.5:计数器复位输出;
二、设备工作原理:探伤装置有4个探头,其2个为板边探头(I0.7与I1.1),位于钢
板左右二边处,用于测钢板二侧边部有无伤痕,另2个为板面探头(I0.3与I0.4),位于钢板中心线前、后二处,用于测钢板中间部位有无伤痕,其后探头与2个板边探头在同一条线上,与钢板的中心线垂直,见下图一:
下图二为组态王编程里的主页图,其顶部为动画部分,左侧图为探伤线正视图,右侧图
为侧视图。其前后4个压辊起夹压钢板作用,当压辊压紧钢板后转动,会捻转钢板由右向左前进。
一、启始准备工作:将钢板由右侧推进,经过右侧压辊间隙,当钢板的前端头位于前探头(即图右侧探头)下部时,前光电开关输出为1,使计数装置(编码器)落下压紧钢板,当钢板的前端头位于后探头(即图左侧探头)下部时,后光电开关输出为1,使前后压辊落下,压紧钢板。
二、启动运行:启始准备完毕后,按下启动按钮,压辊旋转,钢板由右向左前进,编码器旋转,PLC高数计数器由0开始测长计数。编码器每发出一个脉冲即为钢板前进1mm,运行中,如有某一探头发现伤痕,使其对应输入口(如I1.6)=1,它将发出打标信号,将标记喷到伤痕处,同时读取高速计数器的计数值N1,当伤痕结束时(I1.6=0),再次读取计数值N2,其N1为该伤痕的位置与钢板端头的距离值,而N2 - N1则为伤痕长度值,且发出上传数据指令(如使M0.1=1),上位机将立即将这探伤数据,根据上传指令代号(如是板面伤),将有关数据存入“探伤时时记录”表的板面或板边探头下的各栏里,见上图二的探伤报表。
三、具体程序如下:
(一)、主程序:
(二)、计数器初始化子程序(SBR-0)
(三),自动工作子程序(SBR_1)
(四)、手动工作子程序(SBR_2)
…………………
手动程序还有很多语句,基本上同网络1~3相似:即用PLC输入侧的各探头的起落、磁化、打标等手动按钮来控制其对应的输出设备启动与停止(用SR触发器编程),其作用:方便对设备的检查与维修。为压缩文章篇幅,就不一一贴出了。本文到此结束,谢谢大家!