admin 管理员组文章数量: 1086019
2024年3月20日发(作者:华为认证报名官网)
西门子 S7-SCL 语言
S7-SCL(Structured Control Language)-结构性控制语言,它属于可程控的控制卡上
使用的PASCAL高级语言。
S7-SCL符合定义于DIN EN/IEC 61131-3的高水平结构性文字(ST:Structured Text)
的本文语言,它特别适合编写程序复杂的算法和数学函数,或是数据处理任务。
下面就是我用S7-SCL写的一段程序
FUNCTION_BLOCK FB110
VAR_TEMP
// Temporary Variables
SuitCanNum : INT ; //套筒可以拧紧的数量
CanSave : BOOL ; //判断可以存储
END_VAR
VAR
// Static Variables
CurrentOK_Num : INT;
INDEX : INT ;
END_VAR
VAR_INPUT
TotalsNum : INT ; //此扳手可拧的最多的螺栓数
SuitNo : INT ; //套筒号(程序号)
Current_Torque : REAL ; //当前的扭矩
Current_Corner : REAL ; //当前的转角
Current_OK : BOOL ; //当前拧合格后进行记录
ResetCondition : BOOL ; //当移动到下一个工位,或下个发动机过来,清空记数
END_VAR
BEGIN
//SuitCanNum :=nUseNum[SuitNo] ;
IF Current_OK THEN
CanSave := True;
END_IF;
IF ResetCondition = True THEN
CurrentOK_Num :=0 ;
FOR INDEX:= 1 TO TotalsNum BY 1 DO //当移动到下一个工位,或下个发动机
过来,把存储区的内容全部清空
// Statement Section
[CurrentOK_Num].Suit := 0;
[CurrentOK_Num].NO :=0;
[CurrentOK_Num].Torque :=0.0;
[CurrentOK_Num].Corner :=0.0;
[CurrentOK_Num].State :='';
END_FOR;
ELSIF CanSave THEN //当拧紧合格
CanSave := False;
IF CurrentOK_Num = TotalsNum THEN //若当前数量等于最大数量,则退出,避
免CPU停止
RETURN;
END_IF;
CurrentOK_Num := CurrentOK_Num +1; //移动到下一个存储区域
[CurrentOK_Num].Suit := SuitNo;
[CurrentOK_Num].NO :=CurrentOK_Num;
[CurrentOK_Num].Torque :=Current_Torque;
[CurrentOK_Num].Corner :=Current_Corner;
//[CurrentOK_Num].State :='OK';
END_IF ;
// Instruction Section
END_FUNCTION_BLOCK
怎么样,假如这个扳手可以拧几种螺栓,每种螺栓数量不定,用梯形图写起来就相对
麻烦,而且不容易读,对熟悉PASCAL 语言的人是不是一个福音,退一步说,你了解其他
的高级语言,不了解PASCAL也没有关系的,基础的原理都是一样的,希望和大家一起探
讨。
版权声明:本文标题:西门子 S7-SCL 语言 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710923676a579785.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论