6FC5372-0AA00-0AA2

产品名称 6FC5372-0AA00-0AA2
公司名称 浔之漫智控技术(上海)有限公司
价格 .00/件
规格参数 品牌:西门子
型号:模块
产地:德国
公司地址 上海市松江区广富林路4855弄88号3楼
联系电话 158****1992 158****1992

产品详情

   *近项目用到S7-1500,网上找了FIFO队列的实现,有STL语言写的,但STL着实不方便阅读,就自己用SCL搞了一个,把队列的基本功能封装成块,用着还行,跟大家分享一下吧。若有缺陷也请大家指出。
   使用方法:操作都是上升沿触发;Push触发前请保证数据已写到i_push_data;输出的队首元素Front是实时状态,Pop触发前按需取用。
1.FB封装:左边是队列操作,右边输出队列状态及队首元素  


2.FB接口参数:队列的数据存在static区queue里面


3.FB源码
3.1 入队、出队


3.2 基本属性


3.3 清零、复位

我们是否遇到过这样的问题:将DB块下载到CPU,此DB块数据初始化,或者wincc对应的输入值被清零,我们新手如何避免这样的问题?
下面我们看一下DB块的界面:


这是DB块的声明模式,也是我们创建DB块的界面。
我们今天要说的是他的数据视图(视图->数据视图)


这里面多了一个实际值,今天要说的就是他。
我个人感觉把他称呼为实际值不是太准确,也容易与CPU运行中实际值混淆,叫离线实际值更确切一点。其实我们每次下载DB块时,都是将这里面的数值下载到CPU,而非初始值。
离线实际值在我们第一次点数据视图切换时生成(如果未切换过,则是下载时生成),生成后,即使再更改初始值,也不会变化,只能手动更改。但是注意一点如果DB块的第一个是INT格式,则它的值是0(估计程序默认的,毕竟初始化也不是太重要)。如果大家下载DB块时想要按初始值开始,个人建议**执行一次初始化数据块(数据视图模式:编辑->初始化数据块)。

回到我们的问题:如果更改数据块后下载,不想更改原先的数据,可以这样操作:在SIMATIC Manager主页面点击在线,将此数据块上载替换原数据块(此时可以看一下这个数据块的离线实际值,和在线实际值一致),然后在这个数据块中更改,再下载,就可以做到不丢失原数据了。