1 / 13
文档名称:

西门子PLC中使用SCL语言编程的技巧.docx

格式:docx   大小:58KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

西门子PLC中使用SCL语言编程的技巧.docx

上传人:zhangshus 2022/6/4 文件大小:58 KB

下载得到文件列表

西门子PLC中使用SCL语言编程的技巧.docx

文档介绍

文档介绍:在西门子PLC中使用SCL语言编程的技巧
前言:两年半前我就在工控网上发表了有关SCW程的知识<<ftS7300400型PLC中使用高级语言编程>>,但发表完后,即使我自己都从没有把任何使用SCW写的程序用到实际控制中,当时的感觉是使用S种时间的
方波(波峰时间和波谷时间为1:1),假设"FP_1Sec"为这个字节中1秒的方波,则:<1>、间隔1秒的脉冲波“Impls_1Sec”如下编程:“Impls_1Sec":="FP_1Sec"AND(NOT“Impls_1Sec_Aux”);“Impls_1Sec_Aux":="FP_1Sec";<2>、间隔10秒的脉
冲波“Impls_10Sec”如下编程:IF("Impls_10Sec")THENDount_Actual:=0;"Impls_10Sec":=0;ELS曰F("Impls_1Sec”)THENCount_Actual:=Count_Actual+1;END_IF;"Impls_10Sec":=Count_Actual>=10;END_IF;Count_Actual的初始值为0,同时当系统新启动时,也需将其设为零。间隔更长时间的脉冲波编程都可以按照上面的方式编程。
6、尽量使用编程计数功能来替代定时器功能,这样使程序更可靠和易于阅读假设Input_Condition为输入,Output_Delay为通过定
时处理后的输出,Timer_Setpoint为时间设定点,Timer_Actual为当前时间计数的实际值,“Impls_1Sec”为系统编程产生的1秒脉冲。<1>、在输入条件满足的情况下,延时输出的定时器:IF(NOTInput_Condition)THENTimer_Actual:=0;Output_Delay:=
0;ELSEIF("Impls_1Sec”ANDNOTOutput_Delay)THENTimer_Actual:=Timer_Actual+1;END_IF;Output_Delay:=
Timer_Actual>=Timer_Setpoint;END_IF;
7
TimerSetooint
[*
<2>、有记忆的延时输出定时器,即在延时过程中,若输入条件终止,不影响延时,这种定时器必须使用其它的信号复位。IF
Input_ConditionTHENOutput_Aux:=1;END_IF;IF(NOTOutput_Aux)THENTimer_Actual:=0;Output_Delay:=0;ELSEIF
("Impls_1Sec”ANDNOTOutput_Delay)THENTimer_Actual:=Timer_Actual+1;END_IF;Output_Delay:=Timer_Actual>=Timer_Setpoint;END_IF;若想终止Output_Delay的输出,必须在后面追加一条条件语句,用于复位Output_Aux
7
TimerSetooint
[*
<3>、立即输出,延时断开的定时器IFInput_CondtionTHENTimer_Actual:=0;Output_Aux:=0;Output_Delay:=1;//立即输出
ELSEIF("Impls_1Sec”ANDNOTOutput_Aux)THENTimer_Actual:=Timer_Actual+1;END_IF;Output_Aux:=Timer_Actual>=Timer_Setpoint;END_IF;IFOutput_AuxTHENOutput_Delay:=0;//延时断开END_IF;
<4>、在检测到一个上升沿脉冲后,立即输出,并开始计时,在时间到达后断开。IFInput_ConditionTHENOutput_Aux:=1;END_IF;
IF(NOTOutput_Aux)THENTimer_Actual:=0;Timer_Arrived:=0;ELSEIF(NOTTimer_ArrivedAND“Impls_1Sec")THEN
Timer_Actual:=Timer_Actual+1;END_IF;Timer_Arrived:=Timer_Actual>=Timer_Setpoint;END_IF;IFTimer_ArrivedTHENOutput_Aux:=0;END_IF;Output_Delay:=Output_Aux;
通过以上的编程方式可以实现任何定时器功能,而代码却可以为不同的PLC系统所使用
7、使用编程计数功能来替代计数器在SCL语言中使用计数功能是最为简单的,其关键是必须首先对输入进行脉冲检测假设Input