[西门子] SCL 编程示例:控制传送带

[复制链接]
查看59068 | 回复0 | 2024-5-9 17:06:19 | 显示全部楼层 |阅读模式
SCL 编程语言

SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。

根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST 语言 (结构化文本) 的 PLCopen 初级水平。



① 侧栏 在侧栏中可以设置书签和断点。

② 行号 行号显示在程序代码的左侧。

③ 轮廓视图 轮廓视图中将突出显示相应的代码部分。

④ 代码区 在代码区域,可对 SCL 程序进行编辑。

⑤ 绝对操作数的显示 在此表格中列出了赋值给绝对地址的符号操作数。

http://static.video.qq.com/TPout.swf?vid=d3023c9xpq0&1314.swf

SCL 编程示例: 控制传送带

下图显示了以电气方式激活的传送带。在传送带的开始端有两个按钮:S1 用于启动,S2 用于停止。在传送带的末端也有两个按钮:S3 用于启动,S4 用于停止。从任何一端都可启动或停止传送带。



Input

StartPushbutton_Left (S1)  BOOL 位于传送带左侧的启动按钮

StopPushbutton_Left (S2)  BOOL 位于传送带左侧的停止按钮

StartPushbutton_Right (S3)  BOOL 位于传送带右侧的启动按钮

StopPushbutton_Right (S4)  BOOL 位于传送带右侧的停止按钮

Output:

MOTOR_ON  BOOL 启动传送带电机

MOTOR_OFF  BOOL 停止传送带电机

SCL

IF "StartPushbutton_Left_S1" OR "StartPushbutton_Right_S3" THEN

"MOTOR_ON" := 1;

"MOTOR_OFF" := 0;

END_IF;

IF "StopPushbutton_Left_S2" OR "StopPushbutton_Right_S4" THEN

"MOTOR_ON" := 0;

"MOTOR_OFF" := 1;

END_IF;

按下启动按钮“StartPushbutton_Left_S1”或“StartPushbutton_Right_S3”时,将启动传送带电机。按下停止按钮“StopPushbutton_Left_S2”或“StopPushbutton_Right_S4”时,将停止传送带电机。

检测传送带的传送方向:

检测到的传送带传送方向用右箭头或左箭头指示。如果传送的其它物料正在从右边接近 PEB1 或从左边接近 PEB2,显示的箭头最初会关闭,直至两个光电屏蔽均通过后,才能重新检测到传送方向并显示相应的箭头。任务解决方案需要双沿存储器位来检测两个光电屏蔽上从“0”到“1”的信号变化。



Input

光电屏蔽 PEB1 BOOL 光电屏蔽 1

光电屏蔽 PEB2 BOOL 光电屏蔽 2

辅助标记 PEB1 BOOL 沿位存储器 1

辅助标记 PEB2 BOOL 沿位存储器 2

Output

RIGHT BOOL 表示向右传送

LEFT  BOOL 表示向左传送

// 向左传送的程序代码

IF "Photolelectric barrier PEB1" = 1 AND "Auxiliary flag PEB2" = 0 THEN

          "Auxiliary flag PEB1" := 1; // 为 PEB1 设置辅助标记

          "LEFT" := 0; // 关闭向左箭头

          "RIGHT" := 0; // 关闭向右左箭头

END_IF;

IF "Auxiliary flag PEB1" = 1 AND "Photoelectric barrier PEB2" = 1 THEN // 传送带向左传送

          "LEFT" = 1;

          "RIGHT" := 0;

END_IF;

IF "LINKS" = 1 AND "Photoelectric barrier PEB2" = 0 THEN // 复位 PEB1 的辅助标记

          "Auxiliary flag PEB1" = 0

END_IF;

// 向右传送的程序代码

IF "Photolelectric barrier PEB2" = 1 AND "Auxiliary flag PEB1" = 0 THEN

          "Auxiliary flag PEB2" := 1; // 为 PEB2 设置辅助标记

          "LEFT" := 0; // 关闭向左箭头

          "RIGHT" := 0; // 关闭向右左箭头

END_IF;

IF "Auxiliary flag PEB2" = 1 AND "Photoelectric barrier PEB1" = 1 THEN // 传送带向右传送

          "LEFT" = 0;

          "RIGHT" := 1;

END_IF;

IF "RIGHT" = 1 AND "Photoelectric barrier PEB1" = 0 THEN // 复位 PEB2 的辅助标记

          "Auxiliary flag PEB2" := 0;

END_IF;

如果光电屏蔽“PEB1”的信号状态为“1”同时光电屏蔽“PEB2”的信号状态为“0”,则传送带上的包裹向左移动。如果光电屏蔽“PEB2”的信号状态为“1”同时光电屏蔽“PEB1”的信号状态为“0”,则传送带上的包裹向右移动。//当两个光电屏蔽的信号状态均为“0”时,则向左或向右传送的指示灯将熄灭。

--------------------END-------------------



每天进步一点点

Make small but daily progress

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则