0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SCL程序: 检测存储区的填充量示例介绍

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-07-20 10:44 次阅读
检测存储区的填充量示例

检测存储区的填充量

下图显示的系统中包含两条传送带和一个临时存储区,临时存储区位于两条传送带之间。传送带 1 将包裹传送到该存储区。传送带 1 末端靠近存储区的光电屏蔽,负责检测传送到存储区的包裹数量。

传送带 2 将包裹从临时存储区域传输到装载台,包裹将在此装载到卡车上。存储区出口处的光电屏蔽,负责检测离开存储区传入装载台的包裹数量。五个指示灯用于指示临时存储区的容量。

6ce560ae-2624-11ee-962d-dac502259ad0.png

实施

下表列出了所用变量的定义:

名称 声明 数据类型 说明
PEB1 Input BOOL 光电屏蔽 1
PEB2 Input BOOL 光电屏蔽 2
RESET Input BOOL 复位计数器
LOAD Input BOOL 将当前计数器值调整为 PV 参数的值。
MAX STORAGE AREA FILL AMOUNT Input INT 存储区中最大可能的包裹数
PACKAGECOUNT Output INT 存储区中的包裹数(当前计数值)
STOCK_PACKAGES Output BOOL 当前计数值大于或等于变量“MAX STORAGE AREA FILL AMOUNT”的值时置位。
STOR_EMPTY Output BOOL 指示灯:存储区为空
STOR_NOT_EMPTY Output BOOL 指示灯:存储区非空
STOR_50%_FULL Output BOOL 指示灯:存储区已用 50 %
STOR_90%_FULL Output BOOL 指示灯:存储区已用 90 %
STOR_FULL Output BOOL 指示灯:存储区已满
VOLUME_50 Input INT 比较值:50 个包裹
VOLUME_90 Input INT 比较值:90 个包裹
VOLUME_100 Input INT 比较值:100 个包裹

以下 STL 程序说明了如何实现此示例:

当一个包裹传送到存储区时,“PEB1”处的信号状态从“0”变为“1”(信号上升沿)。“PEB1”在信号上升沿时,将启用“加计数”计数器,同时“PACKAGECOUNT”的当前计数值递增 1。

当一个包裹从存储区传送到装载台,“PEB2”处的信号状态从“0”变为“1”(信号上升沿)。“PEB2”在信号上升沿时,将启用“减计数”计数器,同时“PACKAGECOUNT”的当前计数值递减 1。

只要存储区中没有包裹(“PACKAGECOUNT”=“0”),则“STOR_EMPTY”变量的信号状态置位为“1”同时点亮“存储区为空”指示灯。

“RESET”变量的信号状态置位为“1”时,会将当前计数值复位为“0”。

如果“LOAD”变量的信号状态设置为“1”,则会将当前计数值设置为“MAX STORAGE AREA FILL AMOUNT”变量的值。如果当前计数值大于或等于“MAX STORAGE AREA FILL AMOUNT”变量的值,则“STOCK_PACKAGES”变量的信号状态为“1”。

SCL
"VOLUME_50" := 5; // 为比较值预先赋值 50 个包裹(对于测试仅使用 5 个包裹)
"VOLUME_90" := 9; // 为比较值预先赋值 90 个包裹(对于测试仅使用 9 个包裹)
"VOLUME_100" := 10; // 为比较值预先赋值 100 个包裹(对于测试仅使用 10 个包裹)
"MAX STORAGE AREA FILL AMOUNT" := 10; // 为存储区中的最大数量预先赋值 100 个包裹(对于测试仅使用 10 个包裹)
"IEC_Counter_0_DB".CTUD(CU := "PEB1",
CD := "PEB2",
R := "RESET",
LD := "LOAD",
PV := "MAX STORAGE AREA FILL AMOUNT",
QU => "STOCK_PACKAGES",
QD => "STOR_EMPTY",
CV => "PACKAGECOUNT");

只要存储区中有包裹,“存储区非空”指示灯就会点亮。

SCL
"STOR_NOT_EMPTY" := NOT "STOR_EMPTY"

如果存储区中的包裹数低于 50%,“存储区已用 50 %”、“存储区已用 90 %”和“存储区已满”报警指示灯就会熄灭。

SCL
IF "PACKAGECOUNT" < "VOLUME_50" THEN
"STOR_50%_FULL" := 0;
"STOR_90%_FULL" := 0;
"STOR_FULL" := 0;
END_IF;

如果存储区中的包裹数大于或等于 50 %,则“存储区已用 50 %”指示灯将点亮。

SCL
IF "PACKAGECOUNT" >= "VOLUME_50" AND "PACKAGECOUNT <= "VOLUME_90" THEN
"STOR_50%_FULL" := 1;
"STOR_90%_FULL" := 0;
"STOR_FULL" := 0;
END_IF;

如果存储区中的包裹数大于或等于 90 %,则“存储区已用 90 %”指示灯将点亮。“存储区已用 50 %”的指示灯仍然点亮。

SCL
IF "PACKAGECOUNT" >= "VOLUME_90" AND "PACKAGECOUNT < "VOLUME_100" THEN
"STOR_50%_FULL" := 1;
"STOR_90%_FULL" := 1;
"STOR_FULL" := 0;
END_IF;

如果存储区中的包裹数达到 100 %,则“存储区已满”消息指示灯将点亮。“存储区已用 50 %”和“存储区已用 90 %”的指示灯仍然点亮。

SCL
IF "PACKAGECOUNT" >= "VOLUME_100" THEN
"STOR_50%_FULL" := 1;
"STOR_90%_FULL" := 1;
"STOR_FULL" := 1;
END_IF;






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7151

    浏览量

    162003
  • 比较器
    +关注

    关注

    14

    文章

    1526

    浏览量

    106494
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    16884

原文标题:SCL程序: 检测存储区的填充量示例

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STL 程序如何实现填充示例

    下图显示的系统中包含两条传送带和一个临时存储区,临时存储区位于两条传送带之间。传送带 1 将包裹传送到该存储区。
    的头像 发表于 10-08 11:18 742次阅读

    如何在IAP程序实现对应用程序存储的改写

    通信接口的情况下,使用对外接口更新程序。IAP实现原理是:在程序正常运行应用程序时,若需要更新,程序会跳转到另一个存储
    发表于 03-02 06:31

    stc51单片机程序存储不够用,可否在程序存储写一个bootloader,用户程序放入自身的EEPROM?

    stc51单片机程序存储不够用,可否在程序存储写一个bootloader,用户
    发表于 11-09 07:09

    漫水填充算法综合示例_《OpenCV3编程入门》书本配套源代码

    《OpenCV3编程入门》书本配套源代码:漫水填充算法综合示例
    发表于 06-06 15:39 2次下载

    OpenCV3编程入门-源码例程全集-漫水填充算法综合示例

    OpenCV3编程入门-源码例程全集-漫水填充算法综合示例
    发表于 09-17 22:55 0次下载

    基于Arduino无驱动板程序示例

    基于Arduino无驱动板程序示例
    发表于 12-17 21:16 2次下载

    示例SigmaStudio程序

    示例SigmaStudio程序
    发表于 03-23 18:25 15次下载
    <b class='flag-5'>示例</b>SigmaStudio<b class='flag-5'>程序</b>

    STL程序检测存储区的填充示例

    下图显示的系统中包含两条传送带和一个临时存储区,临时存储区位于两条传送带之间。传送带 1 将包裹传送到该存储区。传送带 1 末端靠近存储区的光电屏蔽,负责
    的头像 发表于 04-06 09:28 1038次阅读
    STL<b class='flag-5'>程序</b><b class='flag-5'>检测</b><b class='flag-5'>存储</b>区的<b class='flag-5'>填充</b>量<b class='flag-5'>示例</b>

    关于S7博途V16-SCL检测存储区的填充示例详细讲解

    下图显示的系统中包含两条传送带和一个临时存储区,临时存储区位于两条传送带之间。传送带 1 将包裹传送到该存储区。传送带 1 末端靠近存储区的光电屏蔽,负责
    的头像 发表于 04-07 14:31 3822次阅读
    关于S7博途V16-<b class='flag-5'>SCL</b><b class='flag-5'>检测</b><b class='flag-5'>存储</b>区的<b class='flag-5'>填充</b>量<b class='flag-5'>示例</b>详细讲解

    S7-SCL程序中如何使用多重背景?

    使用多重背景 S7-SCL程序中可以使用多重背景,下面的程序列出了正确格式,声明完成后,在程序中即可调用: Supply1 : FB10;       //将Supply1定义为FB1
    的头像 发表于 04-12 11:20 2129次阅读
    S7-<b class='flag-5'>SCL</b><b class='flag-5'>程序</b>中如何使用多重背景?

    《我和 LabVIEW》示例程序分享

    《我和 LabVIEW》示例程序分享
    发表于 12-07 17:30 17次下载

    圆形可填充加载器安装使用案例

    安装说明: 方法1:对于在示例应用程序中使用循环填充加载器模块,添加以下依赖项以生成 hap/har。 方法2:对于使用har文件在单独的应用程序中使用循环
    发表于 03-24 11:29 1次下载
    圆形可<b class='flag-5'>填充</b>加载器安装使用案例

    SCL与STL的区别是什么?SCL常见问题及解决办法!

    OB,FC,FB,DB,UDT。在 S7 程序中,S7-SCL 块可以与其它STEP7 编程语言生成的块互相调用。S7-SCL 可以被编译成 STL, S7-SCL 生成的块也可以作为
    的头像 发表于 01-17 14:27 2203次阅读

    S7-SCL提供了哪些功能 结构化S7-SCL程序的设计

    在一个S7程序中S7-SCL(程序)块也能够与其他STEP7编程语言所编写的块相结合块可以相互调用。S7-SCL块也可以储存在库中并被其他语言使用。
    发表于 01-31 10:10 692次阅读

    西门子博途SCL程序状态显示

    在表中循环更新并显示程序的状态。该表格在 SCL 程序旁即时显示,可以看到每一行程序程序状态。该表格包含以下信息。
    的头像 发表于 08-15 16:31 2127次阅读
    西门子博途<b class='flag-5'>SCL</b><b class='flag-5'>程序</b>状态显示