西门子PLC结构化编程_模拟量转换FC标准块
文章目录前言一、功能概述二、程序编写1. 新建数据类型“1_AnalogInPutType”2. 新建FC块“FC611_AnalogInPutConver”3. 编程三、程序调用总结前言之前我们分享过基于西门子博途V17平台的模拟量只读转换标准块《西门子PLC结构化编程_优化后的模拟量只读转换标准块》该程序使用FB功能块编写实际项目中发现每次调用都会生成一个背景数据块当模拟量较多时程序变得十分冗杂故本文在原程序基础上重新编写了FC块并对原始程序进行了优化。一、功能概述模拟量输入转换并设置超量程0-27648报警当输入值0或27648时输出值为0或27648同时报警设置采样频率正常情况下每个扫描周期计算一次加上采样周期后在每个设定时间内计算一次比如间隔300ms计算一次即需要每个300ms周期内产生一个高电平和一个低电平此程序将高电平所占时间设置为10ms则低电平时间为290ms均值滤波设置滤波次数(20次)一阶低通滤波滤波系数0.0-1.0采样周期范围0.01当设置为0.01时实际采样周期和程序扫描周期保持一致采样周期越大输出值曲线越平滑但滞后性会越大该参数同时作用于均值滤波算法和一阶低通滤波算法均值滤波次数范围1-20当设置为1时均值滤波功能失效一阶低通滤波器对高频信号有较大的阻碍作用对低频信号阻碍作用较低本程序滤波器算法基于后向差分法一阶低通滤波器参数范围0.0-1.0不包括0.0参数越小曲线越平滑但时效性越差参数越大滤波效果越差当设置为1.0时一阶低通滤波功能失效当CPU启动时的第一个扫描周期或按下“初始化按钮”后将模拟量参数设置为默认值其它情况下可在上位机界面修改当有多个模拟量时可将“外部初始化按钮”关联同一个变量当该变量置位时所有模拟量参数设定值同时初始化可设置死区值当模拟量实际值小于设定值时不进行报警。二、程序编写1. 新建数据类型“1_AnalogInPutType”图12. 新建FC块“FC611_AnalogInPutConver”建立如下引脚变量图23. 编程// 初始化设定// 参数赋值#Analog.InPut.AI_IN:#AI_IN;#Analog.InPut.IN_MIN:#IN_MIN;#Analog.InPut.IN_MAX:#IN_MAX;#Analog.HMI.ModeOut:#ModeOut;IF #FirstScan OR #Analog.HMI.InitialSet OR #HMIInitialSet THEN#Analog.HMI.OUT_MAX:#OUT_MAX;#Analog.HMI.OUT_MIN:#OUT_MIN;#Analog.HMI.LL_Set:#LL_Set;#Analog.HMI.L_Set:#L_Set;#Analog.HMI.H_Set:#H_Set;#Analog.HMI.HH_Set:#HH_Set;#Analog.HMI.CY_CYCLE:#CY_CYCLE;#Analog.HMI.Filt_Times:#Filt_Times;#Analog.HMI.ModeFilter:#ModeFilter;#Analog.HMI.Alpha:#Alpha;// #Analog.HMI.InitialSet : 0; // 初始化设定按钮自复位// #HMIInitialSet : 0; // 外部初始化设定按钮自复位END_IF;// 把浮点数转换为时间IF #Analog.HMI.CY_CYCLE0.01THEN#Analog.HMI.CY_CYCLE:0.01;END_IF;#Analog.Temp.CYCLE_Time:DINT_TO_TIME(REAL_TO_DINT(#Analog.HMI.CY_CYCLE*1000.0)-10);//DINT 1000转成TIME表示1S若CY_CYCLE1则实际时间为1s//“-10”是为了将1S分割成990ms低电平和10ms高电平注意这里调用了自定义边沿检测标准块“FC610_EdgeTrigger”见文章《西门子PLC结构化编程_自定义边沿检测功能块》。// 超量程报警IF #Analog.InPut.AI_IN#Analog.InPut.IN_MIN THEN#Analog.InPut.AI_IN:#Analog.InPut.IN_MIN;#Analog.Temp.Over_Alarm_L:1;ELSE#Analog.Temp.Over_Alarm_L:0;END_IF;IF #Analog.InPut.AI_IN#Analog.InPut.IN_MAX THEN#Analog.InPut.AI_IN:#Analog.InPut.IN_MAX;#Analog.Temp.Over_Alarm_H:1;ELSE#Analog.Temp.Over_Alarm_H:0;END_IF;IF #Analog.Temp.Over_Alarm_L OR #Analog.Temp.Over_Alarm_H THEN#Analog.HMI.Over_Alarm:1;#Analog.HMI.PV:99999.0;ELSIF(NOT #Analog.Temp.Over_Alarm_L)AND(NOT #Analog.Temp.Over_Alarm_H)THEN#Analog.HMI.Over_Alarm:0;END_IF;// 计算输出值// 计算没有经过滤波的4~20mA信号输出值#Analog.OutPut.OUT_Mode0:((INT_TO_REAL(#Analog.InPut.AI_IN-#Analog.InPut.IN_MIN)/INT_TO_REAL(#Analog.InPut.IN_MAX-#Analog.InPut.IN_MIN))*(#Analog.HMI.OUT_MAX-#Analog.HMI.OUT_MIN))#Analog.HMI.OUT_MIN;// 计算没有经过滤波的热电阻PT100信号输出值#Analog.OutPut.OUT_Mode1:INT_TO_REAL(#Analog.InPut.AI_IN)/10.0;// 模式选择及输出IF #Analog.HMI.ModeOut THEN#Analog.OutPut.OUT:#Analog.OutPut.OUT_Mode1;ELSE#Analog.OutPut.OUT:#Analog.OutPut.OUT_Mode0;END_IF;IF #Analog.Temp.TempBool2 THEN REGION 均值滤波 IF #Analog.HMI.Filt_Times20THEN#Analog.HMI.Filt_Times:20;END_IF;IF #Analog.HMI.Filt_Times1THEN#Analog.HMI.Filt_Times:1;END_IF;FOR #Analog.Temp.N:#Analog.HMI.Filt_Times TO1BY-1DO//从最后一个值开始依次将数组中的后一个值倒序赋给前一个值#Analog.Temp.Filts[#Analog.Temp.N]:#Analog.Temp.Filts[#Analog.Temp.N-1];END_FOR;#Analog.Temp.Filts[0]:#Analog.OutPut.OUT;//将输出值赋给数组中的第一个值#Analog.Temp.SUM:0;FOR #Analog.Temp.N:0TO #Analog.HMI.Filt_Times-1DO//计算滤波数组的和#Analog.Temp.SUM:#Analog.Temp.SUM#Analog.Temp.Filts[#Analog.Temp.N];END_FOR;#Analog.OutPut.MeanFilter_OUT:#Analog.Temp.SUM/#Analog.HMI.Filt_Times;//计算平均值END_REGION REGION 一阶低通滤波 IF #Analog.HMI.Alpha1.0THEN#Analog.HMI.Alpha:1.0;END_IF;IF #Analog.HMI.Alpha0.0THEN#Analog.HMI.Alpha:0.01;END_IF;#Analog.OutPut.RCFilter_OUT:(1.0-#Analog.HMI.Alpha)*#Analog.Temp.RCFilter_OUT_PreTime#Analog.HMI.Alpha*#Analog.OutPut.OUT;#Analog.Temp.RCFilter_OUT_PreTime:#Analog.OutPut.RCFilter_OUT;END_REGION END_IF;// 滤波器选择IF NOT #Analog.HMI.Over_Alarm THEN IF #Analog.HMI.ModeFilter THEN#Analog.HMI.PV:#Analog.OutPut.RCFilter_OUT;ELSE#Analog.HMI.PV:#Analog.OutPut.MeanFilter_OUT;END_IF;END_IF;// 复位IF #Analog.HMI.HMI_Rst THEN#Analog.HMI.LL_Latch:0;#Analog.HMI.L_Latch:0;#Analog.HMI.H_Latch:0;#Analog.HMI.HH_Latch:0;#Analog.HMI.LL_Alarm:0;#Analog.HMI.L_Alarm:0;#Analog.HMI.H_Alarm:0;#Analog.HMI.HH_Alarm:0;END_IF;#Analog.HMI.HMI_Rst:#Analog.HMI.HMI_Rst AND NOT #Analog.Temp.TempBool3;#Analog.HMI.InitialSet:#Analog.HMI.InitialSet AND NOT #Analog.Temp.TempBool4;#HMIInitialSet:#HMIInitialSet AND NOT #Analog.Temp.TempBool5;#Analog.Temp.TempBool3:#Analog.HMI.HMI_Rst;#Analog.Temp.TempBool4:#Analog.HMI.InitialSet;#Analog.Temp.TempBool5:#HMIInitialSet;三、程序调用创建一个DB块用来存放所有的模拟量数据。图3在主程序段中调用“FC611_AnalogInPutConver”并关联对应变量示例如下图4总结本文进一步优化了模拟量转换标准块。

相关新闻

cosign签名 + SLSA溯源介绍(SLSA Provenance溯源声明、Keyless模式、OIDC联合身份、Sigstore)

cosign签名 + SLSA溯源介绍(SLSA Provenance溯源声明、Keyless模式、OIDC联合身份、Sigstore)

维度企业做法我们评价部署凭据OIDC 联合身份,无长期密钥长期 ed25519 forced command⚠️ 落后,但裸 VPS 无 IAM 可联合镜像引用digest 钉死digest 钉死✅ 很多团队还在部署 :latest镜像可信cosign 签名 SLSA 溯源 准入控制拒绝未签名仅 Trivy 扫描❌…

2026/8/6 9:17:29 阅读更多 →
2026朝阳危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总

2026朝阳危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总

朝阳区老旧房屋密集,危房鉴定机构虽多却鱼龙混杂,老旧小区业主、乡镇自建房住户、商铺经营者、园区厂房及学校医院都亟需权威安全评估。市面上不少无资质机构出具的报告无法通过住建审核,小编实地走访筛选本地正规第三方危房鉴定实验室&#…

2026/8/6 9:17:29 阅读更多 →
降AI率工具怎么挑才不会踩坑?付款前问清这四条退款条款再下单。

降AI率工具怎么挑才不会踩坑?付款前问清这四条退款条款再下单。

降AI率工具怎么挑才不会踩坑?付款前问清这四条退款条款再下单。 你现在的状态大概是这样:手机里存了七八个链接,小红书刷到的、同学发的、搜索出来的,每一个页面都写着效果显著。评论区一半人说真好用,一半人说骗钱&am…

2026/8/6 9:17:29 阅读更多 →

最新新闻

技术深耕匠心赋能行业革新 集之互动引领AI品牌定制剧营销全新未来

技术深耕匠心赋能行业革新 集之互动引领AI品牌定制剧营销全新未来

数字技术的飞速迭代,正在重构品牌营销的底层逻辑与行业格局,AI影视工业化的全面落地,让品牌内容营销正式告别传统实拍高成本、低效率、难量产的旧时代,迈入智能化、精品化、常态化、低成本的全新发展阶段。AI品牌定制剧作为内容营…

2026/8/6 11:09:21 阅读更多 →
数据库系统工程师必知:DDL核心知识与软考实战技巧

数据库系统工程师必知:DDL核心知识与软考实战技巧

1. 项目概述:数据库系统工程师与DDL的核心价值作为数据库领域的"建筑师",数据库系统工程师需要掌握从底层结构设计到上层应用开发的全套技能。而数据定义语言(DDL)正是构建数据库大厦的基石工具,它定义了数据的组织方式和存储结构。…

2026/8/6 11:09:21 阅读更多 →
Horos医学影像软件:在macOS上免费获得专业级DICOM查看器的终极指南

Horos医学影像软件:在macOS上免费获得专业级DICOM查看器的终极指南

Horos医学影像软件:在macOS上免费获得专业级DICOM查看器的终极指南 【免费下载链接】horos Horos™ is a free, open source medical image viewer. The goal of the Horos Project is to develop a fully functional, 64-bit medical image viewer for OS X. Horos…

2026/8/6 11:09:21 阅读更多 →
浏览器智能体自动化爬虫:原理、实践与优化

浏览器智能体自动化爬虫:原理、实践与优化

1. 项目概述:浏览器控制智能体的自动化革命 在数据驱动的时代,网页数据爬取已成为市场分析、竞品研究和商业决策的基础能力。传统爬虫开发需要处理反爬机制、页面结构变更和维护复杂代码,而AiPy提出的浏览器控制智能体方案,将自动…

2026/8/6 11:09:21 阅读更多 →
OPC UA:工业通信协议的统一与安全实践

OPC UA:工业通信协议的统一与安全实践

1. 工业通信的"普通话革命":OPC UA的前世今生2006年,当OPC基金会首次发布OPC UA规范时,恐怕没人能预料到这个工业通信协议会成为智能制造时代的"普通话"。作为传统OPC标准的升级版,它用一套基于服务的架构&am…

2026/8/6 11:09:21 阅读更多 →
直方图均衡化算法原理与FPGA硬件实现全解析

直方图均衡化算法原理与FPGA硬件实现全解析

1. 直方图均衡化:从映射函数到电路实现的全景解析 直方图均衡化,这个名字对于图像处理领域的朋友来说,绝对是个“老熟人”。无论是刚入门时调用的 cv2.equalizeHist() ,还是在各种图像增强论文里看到的对比度拉伸效果&#xff0…

2026/8/6 11:08:21 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →