当前位置: 首页 > news >正文

基于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的面板也会有新的理解,以后在工程上能够更好的去运用一下博途的较为实用的功能。

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

http://www.cnnetsun.cn/news/130348.html

相关文章:

  • 【金融合规监控盲区曝光】:80%风险源于这4个规则缺失
  • 河道流量水质监测系统解决方案
  • 从零开始构建AI Agent日志监控体系,企业级实践必备技能
  • MCP续证有效期怎么算?一文看懂微软官方政策与隐藏条款
  • 【大模型面试题】15道大模型多模态Agent高频面试题详解,从小白到高手全覆盖!
  • 5分钟快速部署NSMusicS:免费开源的终极音乐播放器完整指南
  • 配置效率提升8倍,MCP Azure量子扩展你必须知道的7个隐藏技巧
  • QQScreenShot终极使用手册:10个提升效率的截图技巧
  • 如何用AI Agent实现护理任务100%准时提醒?:一线专家实战经验分享
  • MCP SC-400合规报告配置全流程(从零到一键生成)
  • Kotaemon数学公式渲染:LaTeX支持配置方法
  • 安卓投屏终极指南:3种方法让你的手机秒变电脑第二屏
  • MCP MS-720 Agent日志审计怎么做?90%安全团队忽略的4个高危盲区
  • 网易云音乐音质提升利器:杜比大喇叭β版全方位体验指南
  • Electron 插件重编译方案整理
  • 模型推理失败频发?,一文搞懂MCP AI-102错误代码与恢复策略
  • ABAP BAPI:BAPI_PRODORD_CREATE 创建生产订单
  • 为什么90%的政务系统升级都选择了Agent自动化?:你不可错过的底层逻辑
  • L4级自动驾驶紧急接管难题破解:人类驾驶员与AI响应时间对比数据曝光
  • 农业无人机Agent避障实战:5大核心算法深度解析与应用指南
  • AI内容生成技术实战:dify-tool-service智能化办公解决方案
  • Windows Precision触控板驱动:让Apple触控板在Windows上完美运行
  • 工业机器人Agent如何实现高效协作?:深度解析多智能体系统在产线中的实战应用
  • 被这6个UI案例美到!兰亭妙微拆解:好设计真能救效率
  • 自动驾驶紧急制动失效案例复盘(罕见故障模式首次公开)
  • 为什么你的PL-600 Agent总是失联?答案全藏在日志的这3个关键区域!
  • MCP量子认证2024更新全记录,IT从业者必看的技术风向标
  • 揭秘MCP MS-720 Agent最新更新机制:如何实现无缝迁移与兼容性处理
  • 【JAVA 进阶】深入理解Sentinel:分布式系统的流量守卫者
  • 5分钟从零掌握GRETNA:MATLAB图论网络分析的终极捷径