原文:西门子博途编程-模拟量批量处理一

博途的间接寻址和S 大不一样。博途中的间接寻址主要用peek poke指令,peek poke指令不能用于优化的数据块。优化数据块可以用数组类寻址。这次的控制任务是模拟类的批量处理,s 模拟量批量处理很繁琐。 控制任务 把数量不定的模拟量转换成工程量,然后保存到指定的数据块中。这里我们为了测试,不读取PIW中的模拟值,而用MW代替。 象这样的控制任务,我们一般用SCL来写会比较方便。请看下面的程序 ...

2017-09-01 10:15 0 4641 推荐指数:

查看详情

西门子编程模拟量批量处理三(最终版)

经多位西门子工业论坛的大神建议, 程序最终如下: 下面是自定义类型: 简单理一下思路, 这次的程序和上次比, 改动较大. 新建了一个自定义数据类型, analogToDigit。其中,channelNo 是模拟量通道 ...

Tue Sep 12 04:34:00 CST 2017 0 3137
西门子编程模拟量批量处理二(重构版)

重构这个词是PC编程中的术语,意思是当写第一遍程序时,因对程序逻辑不甚明白,程序逻辑有点乱,写完后重新理了一下思路,对程序的结构、变量命名等以更好的方式重新了一遍,这个过程叫重构。第二遍的程序逻辑清晰易懂。 和西门子论坛的几位版主讨论后,他们提供了很好的建议,我重构了这个模拟量程序,比以前更简单 ...

Mon Sep 04 20:20:00 CST 2017 0 1335
西门子编程模拟量断线超量程处理(中值法)

温度PID控制时, 有多个温度测量点, 但最终只有一个温度作为反馈值参与PID控制, 我们有时会采用平均值法, 计算所有温度的平均值来作为PID的反馈值. 但在某一路温度探头断线的情况下, 温度值为零, 这时平均值就会小很多. 像这种情况下中值法比较有效. 原理如下: 对于一组温度, 模拟量 ...

Sat Sep 16 03:18:00 CST 2017 0 2004
西门子PLC模拟量信号读取

FC105的块名叫“scale”,中文的意思的模拟量输入的便准化。Scale功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限(LO_LIM)和上限(HI_LIM)之间的实型值。将结果写入out,“缩放”指令将按以下公式进行计算: OUT = [((FLOAT ...

Sun Jun 16 00:16:00 CST 2019 0 1080
西门子编程-泛型和变长数组编程

我们知道在高级语言中普遍使用泛型,那么在PLC中是否可以使用泛型呢?可以,但罗嗦。。 控制要求 求数组中的最大值,数值类型包括Real和Int,我们这里选择两种类型,控制代码。 控制程序 一 array是传进来的数组,可以是Int或Real类型。但有大小限制,长度必须小于 ...

Mon Jul 17 22:54:00 CST 2017 4 3187
西门子编程 - 分拣器设计一

此次我们的任务是设计一个分捡器,控制难度逐渐加深,会用上我们以前的所有技术。任务参考《IEC 61131-3编程语言及应用基础》第281页,但我们使用了更好的设计方案。控制任务摘抄如下: 为分选不同大小的工件,可采用分选器。它从大的工件中选出小工件,将大的工件送到 ...

Sun Oct 15 22:37:00 CST 2017 0 1083
西门子编程 - 变频器控制

这次我们编写一个变频器控制任务。我们选择标准报文2PZD。 这里我们简要讲一下状态字中的第二个字,返回的是频率的百分比,-100% 到 +100% 相对应的范围为-16384 到 ...

Mon Oct 02 01:21:00 CST 2017 1 2735
西门子编程 - 另类步进法

前面我们写了《PLC状态机编程第二篇-负载均衡》这篇博客,用的RS指令来表达各步状态, 今天呢我们用MOVE指令来表示各状态, 最后看看两种办法的优劣。任务还是描述的那个状态机。 程序比较简单, 直接上程序了。 这里声明了一个currentStep变量来存储当前状态, 用IDLE ...

Mon Sep 18 03:23:00 CST 2017 0 1351
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM