news 2026/9/21 17:12:34

基于PLC设计的计算器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于PLC设计的计算器

实习要求所以来做这么一个项目,说实话这种东西交给单片机就行,但是没办法任务嘛,就当锻炼自己的代码写作能力了,接下来我就分享以下我的写作过程和我的心得体会。

首先任务要求用PLC设计一个计算机,并且得使用面板功能。

这里说一下我了解这个功能后对它的理解:我认为面板就类似于把一个模块集成起来,然后把函数这些调用口也集成起来。当下次如果还要用到另一个设备也是这个模块,我们只需要直接把这个集成的模块拉出来然后把接口函数写上就能直接套用了。简单一句话:方便集成使用。

先给大家看看最终成品:

然后是代码部分的分享和感受:

1、首先既然目的是要集成那我代码也集成那就做一个FB块

接口函数很简单 Count_In表按键 Mark_In表模式标志位 OutPut表输出。

(为什么Mark_In写在InOut?因为这个接口的意思就是能输出也能对他的值进行操作,我后续还需要通过控制这些值来做到功能切换。)

(这Static里面还有变量,Static表静态变量嘛,然后就可以在里面放一些辅助触点比如说上升沿触发输入2就需要一个辅助触点记录这个周期的上一个电平值,或者中间变量等等)

我分享一下为什么我要在Static里面写这些而不是默认变量表里面写(我最开始写的是默认变量表里面),因为我如果要保证这个代码能够同时支持几个设备我就不能只有一批辅助触点,不然就多线圈了,到时候直接就是乱的,所以我尝试在Static里面写那下次要再次复用,这个FB块会创建一个相应的DB块来储存这写变量。总结:保证FB块的重复使用功能

2、Count_In即按键输入,把有的按键全部添加进来了方便后续HMI添加按键并操作。

3、Mark_In即标志位输入,方便后续切换功能和使用HMI记录此时的功能。

当然这两步里面都有一个步骤就是自己创建数据类型,不懂得可以去学习一下,类似于单片机的结构体,其实本质和PLC的结构体也是一样的。

4、代码我分成了四个程序段

数字识别包括我按下按键转换成数字其中还有识别小数点

5、我直接拿9来给大家举例子

分成按下小数点后和没按小数点两个板块,上面为没按小数点,下面为按下小数点

先分享一下上面不按小数点的逻辑,OutPut默认为0,Num_4属于中间量,用于存储按键值和后续退格功能,第一次输入9;第二次输入 9×10+Num_4=90+9=99;第三次99×10+Num_4=999……

然后是下面按下小数点后的逻辑

这里用了自锁和其他按键的对他的互锁,保证按键之间不会冲突和计算逻辑不会错误

然后在看到上面的逻辑图,其中Num_3默认值是10,每输入一次Num_3×10,然后

输入的值÷Num_3,即第一次输入 9÷10=OutPut=0.9;第二次输入9÷100+OutPut=0.99;第三次……

6、其次是运算功能键,这个步骤其实相对而言也很简单,我还是只拿+来举例子其他的大家举一反三就能够做出来。

和小数点按键一样得有自锁和互锁,并且得加很重要的一步,就是把OutPut的值给Num_2并且OutPut清零,然后又可以继续按着上面的数字识别的逻辑给OutPut输入值了。并且加法标志位也已经置1了后续逻辑也已经很清晰了。

这里讲一下OutPut和Num_2是储存数据的,每次按下运算键OutPut会把值传给Num_2并且自己空出来;Num_4是用于不存在小数点时的中间量储存;Num_3适用于存在小数点时位置的控制。

7、最后是等于键按下之后,进行逻辑运算,上面说到我们标志位已经置1了即我们已经知道我们需要进行什么运算了(+、-、×、÷),这里我们只需要进行运算和清除运算符号就行了,逻辑如下:

8、退格,我这里用的比较简单,但功能属于丐版,只能实现退一次,逻辑如下:

依旧分成有小数点标志和没小数点标志,还有简单的逻辑判断,主要操作就是让OutPut-Num_4和把数字的位进行还原,即本来是五位数退格之后要变成四位数;本来数字要是0.001要变回0.01,然后就是退格标志的复位,让他只退格一次。

9、到此其实计算机的整体逻辑框架基本结束了,再分享一下我其他功能的逻辑

1)百分号逻辑

2)C和CE的逻辑

10、最后就是HMI中面板的制作

要点1:这里的HMI仿真不能用精简版,因为精简版没有创造面板这个功能。

要点2:最好还是自己先写一个用户变量当接口变量,方便接入和统一参数。

要点3:用户变量也得拖入HMI的面板功能中,这样他的接口变量才能识别这个变量类型。

先把你画好的HMI界面全选然后选择创建面板,然后会进入这个界面

然后右下角右键点击创建新的类别或者新的属性,我选的新的类别这里是可以再这个类别添加新的属性,然后就可以在里面添加新的接口变量了,我直接接入的是我写的用户变量类型,然后再右键你要控制的按键点击属性

正常写逻辑把所有要控制的都走一遍就ok了,你献完之后上面那个图会自己画出来一条线,把你的按键和变量连接起来。

最后创建完成右边是这样的,他直接集成成一个面板下次使用可以直接拖出来

拖出来之后点击模块然后把接口里面输入你的新的变量就可以直接使用了。

总结:逻辑方面这个确实写得很优雅;然后对于HMI的面板也会有新的理解,以后在工程上能够更好的去运用一下博途的较为实用的功能。

如果你觉得有意思或者对你有帮助麻烦留下一个宝贵的点赞哦

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/21 20:46:07

【金融合规监控盲区曝光】:80%风险源于这4个规则缺失

第一章:金融合规 Agent 的核心价值与演进路径在数字化金融加速发展的背景下,金融合规 Agent 作为智能风控体系的核心组件,正逐步从规则驱动的自动化工具演进为具备认知推理能力的智能体。其核心价值不仅体现在降低人工审核成本、提升监管响应…

作者头像 李华
网站建设 2026/9/22 1:17:15

河道流量水质监测系统解决方案

一、方案背景 随着工业化和城市化进程的加快,水环境污染问题日益突出,河道作为水生态系统的重要组成部分,其流量与水质状况直接关系到区域水资源安全、生态环境健康及经济社会可持续发展。本方案旨在构建一套集实时监测、数据传输、智能分析、…

作者头像 李华
网站建设 2026/9/21 19:28:37

从零开始构建AI Agent日志监控体系,企业级实践必备技能

第一章:AI Agent 部署的日志分析在AI Agent的部署过程中,日志分析是确保系统稳定性与可维护性的关键环节。通过集中采集和解析运行时日志,运维团队能够快速定位异常行为、监控资源消耗,并实现故障的提前预警。日志采集策略 AI Age…

作者头像 李华
网站建设 2026/9/22 8:18:54

MCP续证有效期怎么算?一文看懂微软官方政策与隐藏条款

第一章:MCP续证时间限制概述Microsoft Certified Professional(MCP)认证是IT从业者证明技术能力的重要凭证。随着微软对认证体系的持续优化,续证的时间限制成为持证人员必须关注的核心问题之一。当前,大多数MCP相关认证…

作者头像 李华
网站建设 2026/9/22 2:18:03

【大模型面试题】15道大模型多模态Agent高频面试题详解,从小白到高手全覆盖!

简介 本文精选15道关于Agent多模态应用的高频面试题,涵盖多模态理解、生成、融合、视觉/音频/视频Agent设计、跨模态检索、多模态对话与工具调用、多模态记忆管理、评估方法及实际应用场景等核心知识点,为准备大模型应用岗位面试的读者提供全面指导。 一…

作者头像 李华
网站建设 2026/9/21 8:52:28

5分钟快速部署NSMusicS:免费开源的终极音乐播放器完整指南

5分钟快速部署NSMusicS:免费开源的终极音乐播放器完整指南 【免费下载链接】NSMusicS NSMusicS(Nine Songs Music World:九歌 音乐世界),open-source music software 项目地址: https://gitcode.com/GitHub_Trendi…

作者头像 李华