流量卡怎么计算费用(流量卡费用怎么交)
使用博途软件编写流量累积功能块
使用西门子博途软件编写一个根据瞬时流量计算累计流量的功能块;大部分的流量计都自己带流量累积,不需要计算,有极少一部分流量计不带流量累积功能,那就需要用PLC或者上位机来设计一个根据瞬时流量来计算累计流量的功能块。
累计流量的意义
目前市面上大部分PLC都带有流量累积功能块,一般命名为“Totalizer”,但是有大部分都需要官网下载或者一些特定的渠道下载,有时候着急用的时候还找不到,流量累积在一些特定的流程工业控制领域是很重要的一个参数,对数据分析有很重要的意义;实际上根据瞬时流量来计算累计流量就是把PLC每个扫描周期采集到的数据进行简单的累加,复杂的还有一些特定的参数设定,对于PLC做的流量累积实际上还是有些一些误差的,因为没有补偿;现在我们用博途的SCL语言来编写一个简单的流量累积公式。
博途软件实现累计流量计算的方法
2.1 FB函数块建立
首先我们需要打开博途软件,本文用的是博途V15版本,在程序块处点击添加一个FB程序块,编程语言使用SCL,命名“流量累积”,如图1所示。
图1 建立流量累积FB块
2.1 建立临时变量
打开建立好的功能块,在上方添加临时变量,具体的临时变量设置组态与名称如图2所示。
图2 临时变量组态
2.2 程序编写
在变量组态的下方空白处进行流量累积计算程序编写,具体的编写程序如图3所示。
图3 流量累积程序编写
在一个循环中,输入变量 "时间单位" 和"扫描时间" 数据类型 Time 被转化为 Real 类型;转化后的值被转移到临时变量 “时间单位_Real” 和 “扫描时间_Real”;变量 "瞬时流量" 的输入值乘以临时变量 "扫描时间_Real" 的值,然后除以临时变量 “时间单位_Real”;再加上上一次计算的值;结果存储在静态变量 “中间值” 的缓冲区。
这样每次循环之后,中间结果值存储在“中间值” 的缓冲区中递增,然后转移到输出变量“累积流量” 中。如果变量 “复位” 有“True” 的值,则变量 “累积流量” 输出值被复位为零。
程序仿真测试
"流量累积" 功能块必须在循环中断(比如OB30)中调用,不然计算中误差会很大,新建一个循环中断,命名为“累积流量计算”,将“流量累积”功能块调用,填写各个参数;在此程序中,瞬时流量的值为100,输出变量“累积流量”的值在1分钟内从0累积到100,扫描时间单位是100毫秒,和CPU扫描时间对应,当FB在循环中断中被调用时,程序每隔 100ms 处理一次而且程序是独立于 OB1 (主程序)的。被测量值 "瞬时流量" (速度或流量)的计量单位可以是米每秒,立方米每分钟或公里每小时。这时变量 "时间单位" 必须输入对应的间隔时间,例如:米每秒: T#1s、立方米每分钟: T#1M、公里每小时:T#1h。程序如图4所示。
图4 流量累积功能块调用
使用博途自带的仿真程序进行仿真测试,仿真运行测试正常,程序仿真如图5所示。
图5 程序仿真测试
抽空再做一个上位机组态的测试。
不足之处还望海涵,请各界大佬多多批评指教!
程序仅供参考!
如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。