西门子S7-1200实现先进先出(FIFO)循环存储

2023-11-11

目录

一、使用数组存储,通过更改存入和取出的索引实现     

使用LAD语言&SCL语言组合实现

1、新建函数块(FB块)

2 、基础变量声明

3、开始写程序

4、完整程序 

 END


一、使用数组存储,通过更改存入和取出的索引实现     

使用LAD语言&SCL语言组合实现

        相对于SCL,使用LAD语言的使用更加的普遍,但是LAD又有它的局限性,因此这里使用LAD和SCL相结合的方式实现这个需求,可以让熟悉LAD语言的工程师更好的理解实现思路。

1、新建函数块(FB块)

                       名称:循环存储(FIFO)

                       语言:LAD                       ​​  ​​      

26efafdf08314b16ad5547c3b4ff64de.png

创建函数块

2 、基础变量声明

        在“循环存储(FIFO)”中声明所需要的基础变量,程序中使用的变量在编写过程中根据需要进行声明即可。

2f89e6f22f99431d9a0e934496780cfc.png

声明基础变量

3、开始写程序

1、写入数据

 1.1 声明变量“写入使能_上升沿存储”8d4c910d1c3b47eba1b68f1967c30322.png

1.2 使用 “CMP<>” 指令先看 “#写入数据” 是否不为空(我们把16#00视为空),满足条件后在 “#写入使能” 的上升沿使用 “MOVE” 指令将 “#写入数据” 的值移动到 “#存储数组[#写入索引]”。数据写入完成后,使用“ADD”加法指令,将 “#写入索引” +1,为下一次写入做准备。

d63d45c13ff6417f93dd3499cd7aaa79.png

写入程序标题

  

2、使用“CMP>”指令,当“#写入索引” 大于“#存储数组”的最大索引时将“#写入索引”重置为“0”,下一次写入数据时将从“#存储数组”的第一个元素开始写入;我们前面声明的数据组最高索引为99,所以这里“CMP>”的 “操作数2 ” 是“99”;

48daedeb28a74d0abe75efb3dbf8d800.png

复位写入索引

3、读取数据

3.1 声明变量“#读取使能_上升沿存储” 

87ba4f98633448449bf9797912c0378d.png

标题声明变量“#读取使能_上升沿存储” 

3.2 在 “#读取使能” 的上升沿,使用 “CMP<>” 指令先看 “#存储数组[#读取索引]”的值是否不为空,满足条件后使用“MOVE”指令,将“#存储数组[#读取索引]”的值移动到“#读取数据”,数据读取完成后,使用“ADD”加法指令,将 “#读取索引” +1,为下一次读取做准备。

c2a0d060e36e472d8dd31ddcfc728efa.png

读取数据

4、使用“CMP>”指令,当“#读取索引” 大于“#存储数组”的最大索引时将“#读取索引”重置为“0”,下一次写入数据时将从“#存储数组”的第一个元素开始写入;我们前面声明的数据组最高索引为99,所以这里“CMP>”的 “操作数2 ” 是“99”;

dad6275f0623498cae6d4c1fe400b894.png

复位读取索引

5、 复位索引和清空数组

5.1 声明变量:

                  复位和清空_上升沿存储
                  复位和清空_FOR起始值
                  复位存储数组的索引值

7bcbb7dda2bd4e0fa2fa96b3b8c6b9ea.png

声明变量

 5.2 插入SCL程序段,在复位数组的过程中使用 “FOR” 效率更高,因此这里我们使用SCL语言;

3364b52b5f5f4e6396b5bb84b96152ae.png

插入SCL程序段

 5.3 使用 “P_TRIG” 指令获取 #复位和清空 信号的上升沿,“P_TRIG”放到程序段中,调用函数选择多重实例

7cb88b1c45fe4d58aa61ffb1ffda3fed.png

P_TRIG 调用函数“多重实例”

5.4 使用“IF”指令,当 “#复位和清空_上升沿存储” 为“1”时,将“ #写入索引、 #读取索引、#复位存储数组的索引值” 的值赋为“0”,然后通过遍历的方式将“#存储数组”所有元素赋值为“16#00”. 

db018bd62210404dbe9c5cf232b65921.png

复位和清空程序

4、完整程序 

1、变量表

caf488cbc6ba4f858dd0038cafe4f9e3.png

变量表

 2、程序

06f74270979a4032ade5ab7d7883b365.png 7fbc4a33d54c4f05bac04efc3e0c759b.png

 END

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

西门子S7-1200实现先进先出(FIFO)循环存储 的相关文章

  • 38条Web测试经验分享

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 38条Web测试经验分享

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 短视频时代:文案的力量与价值

    在当今这个信息时代 短视频以其独特的魅力和巨大的传播力 已经深深地渗透到我们的生活中 无论是抖音 快手 还是其他短视频平台 它们都在以自己独特的方式塑造着我们的娱乐生活 而在这些短片的背后 有一个重要的元素在发挥着关键的作用 那就是文案 文
  • 内网穿透工具frp安装使用

    摘要 之前使用的 nps 目前没有维护更新了 和在使用的过程中做内网穿透的的网速应该有限制 不论云服务器带宽是多少 下载速度都比较慢 这里切换到 frp 试试 对安装和使用简单记录 其和 nps 有很大的操作配置不同之处 相关文章 内网穿透
  • 联邦学习:在保护数据隐私的前提下进行分布式机器学习的方法

    随着大数据时代的到来 机器学习正成为各个领域中重要的工具和技术 然而 传统的机器学习方法通常需要集中式地收集和处理大量的数据 这可能涉及到用户的隐私问题 为了解决这一问题 联邦学习应运而生 联邦学习是一种分布式机器学习的方法 它允许在保护数
  • 联邦学习:在保护数据隐私的前提下进行分布式机器学习的方法

    随着大数据时代的到来 机器学习正成为各个领域中重要的工具和技术 然而 传统的机器学习方法通常需要集中式地收集和处理大量的数据 这可能涉及到用户的隐私问题 为了解决这一问题 联邦学习应运而生 联邦学习是一种分布式机器学习的方法 它允许在保护数
  • 8大数字技术打造ESG发展新范式!工业“双碳”建设应该这么做

    随着国家 双碳 目标的提出 数字化 绿色化证进入历史交汇 协同发展 路径合一 相辅相成的重要阶段 在此背景下 中国信通院 中国航天航空 工业互联网产业联盟于2022年联合出版了 数字技术赋能工业碳达峰碳中和应用指南 以下简称 指南 今年又细
  • pdf压缩大小方法哪个好用些?这三招可不要错过

    大家有没有被龟速的文件上传速度折磨过 好不容易等到上传进度走到最后一点点 但是却眼睁睁看着上传速度突然降到2kb s 真的是分分钟被 气死 拿网速没办法 那就只能从文件大小下手了 而怎么样做到压缩文件大小的同时又能保持它的清晰度呢 这当然少
  • Mac/Linux虚拟机CrossOver2024新版下载使用教程

    CrossOver不像Parallels或VMware的模拟器 而是实实在在Mac OS X系统上运行的一个软件 该软件可以让用户在mac是上直接运行windows软件 本文为大家带来的是CrossOver Mac版安装教程 CrossOv
  • 职场生存能力最强的5类人:如何成为职场中的佼佼者?

    职场生存能力最强的5类人 如何成为职场中的佼佼者 在职场中 生存能力强的人往往更容易获得成功 他们具备各种能力和特质 使他们能够在激烈的竞争中脱颖而出 本文将介绍职场生存能力最强的5类人 看看你是否具备这些特点 一 适应能力强的人 在职场中
  • 拍照翻译用什么软件?这些软件帮你轻松实现拍照翻译

    巴山楚水凄凉地 Submission dear me 去年考过四级的朋友应该都懂这个梗吧 作文的题目咱是从头到尾看了十几遍 但还是猜不出来 submission 是啥意思 于是开头就来个 Dear submission 写完还美滋滋的觉得自
  • 精密划片机在电子烟芯片上的应用

    随着电子烟市场的不断扩大 电子烟芯片作为核心部件之一 其质量和安全性也受到了越来越多的关注 为了满足市场需求 提高电子烟芯片的制造效率和品质 精密划片机在电子烟芯片制造过程中发挥着越来越重要的作用 精密划片机是一种高精度 高效率的数控设备
  • 基于电源完整性的PCB设计原则

    基于电源完整性的一些PCB设计建议 1 尽量减少电源和地通路之间的环路电感 在相邻的层上分配电源和接地面时 使用尽可能薄的电介质 2 通过在平面之间使用尽可能高的介电常数来获得平面之间的最低阻抗 与尽可能薄的介电常数设计保持一致 3 使用尽
  • 海报模板怎么进行编辑文字?公司宣传海报就这样做

    作为负责公司宣传事宜的部门 我每天不是在做海报 就是在找做海报的素材 力求要把这些宣传的物料都做得精致又有内容 经过我长时间的试用下来 给大家从基本功能 使用体验和不同场景下的应用这几个方面 总结出了海报制作软件哪个好用 接下来就让我为你详
  • 图片编辑软件有哪些好用的?这几款快收藏吧

    你有没有过这样的经历 精心拍摄了一组照片 却发现有些角度不对 光线不够好 或者想要给图片加上一些特别的滤镜效果来达到心目中的样子 这时 你就需要一款合适的图片编辑软件了 但是 市面上的图片编辑软件琳琅满目 哪一款才是适合自己的呢 别担心 今
  • 深圳三维扫描分析/偏差检测模具型腔三维尺寸及形位偏差测量公司

    CASAIM中科广电三维扫描模具型腔深圳案例 模具型腔的三维扫描分析 偏差检测是一项重要的质量控制过程 旨在确保模具制造过程中的精确度和一致性 CASAIM中科广电通过使用高精度的三维扫描设备 可以获取模具型腔的实际形状和尺寸数据 并将其与
  • 汽车改装三维扫描抄数3d数据汽车整车上门数据测绘房车改装测量

    在这个汽车改装行业日益兴起的社会 三维扫描技术正逐渐成为汽车改装领域中的一股新势力 它以其独特的优势 为汽车改装带来了前所未有的便利和精准度 CASAIM中科广电三维扫描技术能够快速 准确地获取汽车各个部位的三维数据 为改装工程师提供详细
  • 进口零部件三维模型扫描替换抄数建模逆向造型设计服务CASAIM

    三维扫描技术在现代制造业中发挥着越来越重要的作用 尤其在零部件建模领域 它能够快速 准确地获取物体的三维数据 为后续的逆向工程和快速原型制造提供了有力支持 CASAIM三维扫描仪设备通过对零部件进行三维扫描 我们可以获得其精确的三维几何数据
  • 如何正确使用RC滤波网络

    众所周知 最有效的滤波电路应靠近噪声源放置 滤波的作用是对噪声电流进行及时有效地阻止和转移 实际设计中 工程师经常使用高的串联阻抗 电阻 电感和铁氧体 阻止电流 并使用低的并联阻抗 电容 转移电流 通常情况下 我们期望滤波器可以对噪声信号衰
  • 实力认证!鼎捷软件荣膺“领军企业”和“创新产品”两大奖项

    近日 由中国科学院软件研究所 中科软科技股份有限公司联合主办的 2023中国软件技术大会 于北京成功举办 本届大会以 大模型驱动下的软件变革 为主题 数十位来自知名互联网公司和软件巨头企业的技术大咖 不同领域行业专家 畅销书作者等分享嘉宾

随机推荐

  • vcruntime140_1.dll丢失怎样修复,推荐4个vcruntime140_1.dll丢失的修复方法

    vcruntime140 1 dll文件是Microsoft Visual C Redistributable for Visual Studio 2015运行库的一部分 它是一个用于支持Visual C 构建的应用程序的系统文件 这个文件
  • Jmeter调试脚本之断言

    前言 jmeter中有个元件叫做断言 Assertion 它的作用和loadrunner中的检查点类似 用于检查测试中得到的响应数据等是否符合预期 用以保证性能测试过程中的数据交互与预期一致 使用断言的目的 在request的返回层面增加一
  • [Excel VBA]快捷键如何设置?

    本文翻译至 http itpro nikkeibp co jp atcl column 15 090100207 090100146 Application OnKey 键 函数名 执行Application对象的OnKey方法就可以设定宏
  • java中的异步处理和Feature接口(一)

    文章目录 背景介绍 Feature接口 Feature接口和Tread的区别 Feature接口示例 Feature接口的局限性 背景介绍 想象这样一个场景 你可能希望为你的法国客户提供指定主题的热点报道 为实现这一功能 你需要向 谷歌或者
  • 数据的截断

    将一个w位的数据截断为k位的数据 1 对于无符号的数据 num 的转换 num Mod pow 2 k 例如 pre class cpp span span unsigned short x 257 unsigned char p x 1
  • 笔记本GTX1050(计算能力6.1)安装cuda11.0+cudnn8.2(for cuda 11.x)+pycharm tensorflow-gpu2.4.0错误排除

    我最先下载的是最新的cuda11 4 1以及tf gpu2 5 0 后来因为觉得版本太高才降低了版本 这三者的版本对应很重要 比如tf2 5 0就不能用cuda11 我才降的级 这里主要说几个坑 截止到2021 8 最新的cuda11 4
  • html checked属性值,HTML复选框的checked属性的值是多少?

    8种机械键盘轴体对比 本人程序员 要买一个写代码的键盘 请问红轴和茶轴怎么选 我们都知道如何在HTML中构成复选框输入 我不知道 选中复选框的技术上正确的值是多少 我已经看到了这些工作 答案是无关紧要的 我没有看到答案标记为正确的证据 这里
  • elementUI-新增,编辑,详情组件

  • oracle的 分表 详解 -----表分区

    此文从以下几个方面来整理关于分区表的概念及操作 1 表空间及分区表的概念 2 表分区的具体作用 3 表分区的优缺点 4 表分区的几种类型及操作方法 5 对表分区的维护性操作 1 表空间及分区表的概念 表空间 是一个或多个数据文件的集合 所有
  • 1分钟解决Prim算法构造最小生成树

    数据结构期末上分必备 前言 Prim 算法构造最小生成树 跟着画一遍就会了 Kruskal 请移步 kruskal 题目 设有如下图所示的无向连通图 从顶点A出发 使用 Prim 算法构造最小生成树 依次画出每次挑选出的边及权值 题解 从顶
  • 评估指标 -- Precision(查准率), Recall(查全率)和F1 score; PR曲线和mAP; ROC曲线和AUC

    Precision Recall 和 F1 score Precision 查准率 精确率 Recall 查全率 召回率 查准率和查全率是互相影响的 理想情况是希望两者都高 但是一般情况下查准率高 查全率就低 查全率高 查准率就低 如果是做
  • 蓝桥杯---算法训练 大等于n的最小完全平方数(Java解法)

    题目 问题描述 输出大等于n的最小的完全平方数 若一个数能表示成某个自然数的平方的形式 则称这个数为完全平方数 Tips 注意数据范围 输入格式 一个整数n 输出格式 大等于n的最小的完全平方数 样例输入 71711 样例输出 71824
  • 组合模式-

    定义 也称为整体 部分模式 它的宗旨是通过将单个对象 叶子节点 和组合对象 树枝节点 用相同的接口进行表示 适用场景 1 希望客户端可以忽略组合对象与单个对象的差异时 2 对象层次具备整体和部分 呈树形结构 如树形菜单 操作系统目录结构 公
  • 电脑只能登录微信?但却打不开网页?不能上网怎么办?ip地址和DNS出问题了无法上网怎么办?

    描述一下问题 昨天使用了一些代理梯子 直接关机 没有关闭那个软件 今天打开电脑就出问题了 只能登录微信 但却打不开网页 今天查了很多资料都没有解决 花了2个多小时 终于可以上网了 解决办法 找到 控制面板 网络和Internet 里面的 网
  • 计算机的桌面的路径,如何设置电脑保存路径在桌面上?

    我们在使用电脑时一般都会把系统安装到C盘 而很多的桌面图标也随之产生在C盘 当桌面文件越来越多是 不仅影响开机速度 同 时我们的电脑会很卡 当系统崩溃需要重装电脑时 我们总是要通过各种办法备份桌面 如果我们把桌面路径改到其他盘符 这些烦恼就
  • 2021-06-30 暑期实训开发日志3——山大云服务器配置anaconda pytorch

    暑期实训开发日志3 山大云服务器配置anaconda pytorch 一 安装anaconda 1 获取Anaconda安装脚本 2 安装 3 环境配置 二 creat新环境并连接pycharm 三 下载pytorch 可能会遇到的问题和解
  • giaogiao教你用c语言在屏幕上打印各种图案

    今天我们用c语言来实现在屏幕上打印用 组成的图案 首先呢 我们从简单的开始 输出自定义行数的矩形 我定义了三个变量 用for循环做了一个嵌套 用n来限制i j 从而控制输出图案的大小 搞定 你看我屌么 哈哈哈哈 这只是开始 我试试来输出自定
  • win8.1 pro-64位下安装配置MinGW—64位

    1 下载MinGW w64位 http mingw w64 org doku php 点击Downloads 说明 这边使用的是在线安装方式 在网站里可以看到他安装后的文件夹 2 安装 运行mingw w64 install exe 欢迎界
  • 如何使用QMessageBox(用法举例)

    如何使用QMessageBox 用法举例 QMessageBox是Qt编程中常用的类 使用方便 下面给出该类的普通用法实例 希望对你有所帮助 1 包含头文件 include
  • 西门子S7-1200实现先进先出(FIFO)循环存储

    目录 一 使用数组存储 通过更改存入和取出的索引实现 使用LAD语言 SCL语言组合实现 1 新建函数块 FB块 2 基础变量声明 3 开始写程序 4 完整程序 END 一 使用数组存储 通过更改存入和取出的索引实现 使用LAD语言 SCL