CODESYS可视化桌面屏保-动态气泡制作详细案例

#一个用于可视化(HMI)界面的动态屏保的详细制作案例程序#
前言:
在工控自动化设备上,为了防止由于人为误触发或操作引起的故障,通常在触摸屏(HMI)增加屏幕保护界面,然而随着PLC偏IT化的发展,在控制界面上的美观程度也逐渐向上位机或网页前端方面发展,本篇模仿Windows系统的屏幕保护背景界面,做了一个动态气泡的效果视图,其目的是展示CODESYS的可视化组件效果的丰富性,以及可实现性。
本篇案例库文件下载:
https://download.csdn.net/download/weixin_44166380/89965798

一、案例分析

1.实现方案

我们在研究屏保背景动态“气泡”运动时,在屏幕随机位置出现N个气泡,每当任一气泡接触屏幕边框时,自动弹回到其它位置,当任意多个气泡接触时,为避免图形交叉也弹动到其它位置。为了增加气泡间接触的动感,我们在以上的基础上,做了闪烁效果,丰富了图形运动的美感。

2.实现过程

在本篇案例实现的过程中,有几个关键性的因素需要考虑。

🔸 气泡间的物理模型:接触边界的气泡圆,平行并排的气泡圆,似三角形的气泡圆,似菱形的气泡圆等等。
🔸 检测碰撞的位置关系:假设边界起点在左上角,气泡位置<边界起点→右移(下移),气泡位置>边界终点→左移(上移)。当气泡间碰撞时,使用公式√((x1-x2)²+(y1-y2)²),当气泡1位置<气泡2位置时→左移(上移),反之右移(下移)。
🔸 碰撞后的弹出位置:如上,关于碰撞后的移动方向,可使用随机数,但前提是要基于模型和当前的位置关系,确定需要移动的方向。

3.实现效果

如下视频,本篇案例的气泡初始位置是固定的,然后做随机方向运动,当碰到边界或其它气泡时,再做随机方向运动,当气泡间碰撞时,出现闪烁效果。

气泡背景

二、可视化界面

1.图片池

关于图片池的创建和加载,可参考本人专栏的其它文章。
在这里插入图片描述

2.图片参数

如下图,添加多个气泡,位置可设0,0,大小宽度均为300,中心点位置150,150,绝对位置和显隐填入相关变量即可。
在这里插入图片描述

三、程序代码编写

1.结构体变量

用于气泡相关的内部参数变量。

TYPE Para :
STRUCTcenPos:ARRAY[0..1] OF REAL;//圆心位置firstPos:ARRAY[0..1] OF REAL;//圆心位置moveDir:WORD;//移动方向blink:BOOL;//眨眼间隔
END_STRUCT
END_TYPE

2.程序体变量

用于程序控制相关的参数变量。

PROGRAM PLC_PRG
VARbubbleNo: ARRAY [0..3] OF Para;//气泡数量i:INT;j:INT;firstLast:REAL;firstOn:BOOL;visualSize: ARRAY[0..

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/7554.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构 队列】超详细理解例题

数据结构 队列 前言队列的定义队列的概念队列的基本操作 队列用C语言实现Queue.hQueue.ctext.c 队列 VS 栈队列的应用 你好&#xff0c;这里是新人 Sunfor 这篇是我最近对于数据结构 队列的学习心得和错题整理 有任何错误欢迎指正&#xff0c;欢迎交流&#xff01; 会持续更新…

VSCode + linux 远程免密登录

目录 一. VS Code端1. 安装插件Remote - SSH2. 配置config文件3. 公钥生成 二、远程服务器端1. 将生成的公钥发送到远程服务器 三、连接1. 准备就绪后&#xff0c;VSCode连接 一. VS Code端 1. 安装插件Remote - SSH 2. 配置config文件 Host H5WebHostName xx.xx.xx.xxUser ro…

简单分享一下淘宝商品数据自动化抓取的技术实现与挑战

在电子商务领域&#xff0c;数据是驱动决策的关键。淘宝作为国内最大的电商平台之一&#xff0c;其商品数据对电商从业者来说具有极高的价值。然而&#xff0c;从淘宝平台自动化抓取商品数据并非易事&#xff0c;涉及多重技术和法律挑战。本文将从技术层面分析实现淘宝商品数据…

初识网络编程

目录 前言相关名词解释应用层协议——HTTP传输层协议socketTCP帧头格式三次握手、四次挥手 UDPTCP的socket实现 参考博文 前言 刚碰到网络编程&#xff0c;会出现一堆协议、概念、这层次那技术的&#xff0c;头都大了&#xff0c;还是得总结总结…… 相关名词解释 ✨✨网络…

JRTPLIB中的RTPSession与OnSSRCCollision:深入解析SSRC冲突处理机制

JRTPLIB中的RTPSession与OnSSRCCollision:深入解析SSRC冲突处理机制 一、RTP与SSRC基础1.1 RTP简介1.2 SSRC的作用二、JRTPLIB与RTPSession2.1 JRTPLIB概述2.2 RTPSession类三、SSRC冲突与OnSSRCCollision3.1 SSRC冲突的原因3.2 OnSSRCCollision回调函数3.3 OnSSRCCollision的…

【数据集】【YOLO】【目标检测】口罩佩戴识别数据集 1971 张,YOLO佩戴口罩检测算法实战训练教程!

数据集介绍 【数据集】口罩佩戴检测数据集 1971 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。 数据集中包含1种分类&#xff1a;{0: face_mask}&#xff0c;佩戴口罩。 数据集来自国内外图片网站和视频截图。 检测场景为城市街道、医院、商场、机场、车站、办…

实测讯飞智作,一张照片定制属于自己的数字人

Datawhale亲测 AI应用&#xff1a;讯飞智作 只用一张照片&#xff0c;就可以定制属于自己的数字人。 这是大模型给数字人领域带来的最新震撼。 就在两周前的 AI 开发者 Talk 合肥站活动上&#xff0c;我们 Datawhale 的一名小伙伴玉鑫化身成数字人亮相大屏幕&#xff0c;为参加…

乡村景区一体化系统(门票,餐饮,便利店,果园,娱乐,停车收费

一、一体化优势 1. 提升游客体验&#xff1a;游客可以通过一个系统方便地完成各种消费和预订&#xff0c;无需在不同的地方分别处理&#xff0c;节省时间和精力&#xff0c;使游玩过程更加顺畅和愉快。 2. 提高管理效率&#xff1a;景区管理者能够在一个平台上集中管理多个业…

安卓编程最方便的读写资料类SharedPreferences,多个APP共享

本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种&#xff1a; 使用SharedPreferences存储数据 …

[Docker#1] 专栏前言 | 亿级高并发架构演进之路

目录 目标 一.前期演进 1. 单机架构 2. 应用数据分离架构 3. 应用集群架构 4. 读写分离/主从分离架构 5. 冷热分离架构 二. 架构 分布式数据库架构 微服务架构 容器编排架构 三. An Internet Application Architecture 理解 上层传输 框架 数据处理 主要思想 …

初识AI大模型,ollama使用,llama factory大模型微调,lama.cpp模型转换guff

最近了解了下生成式AI对话&#xff0c;下面是自己的一些尝试记录。 ollama 安装及使用 1、安装 我是在windows环境下安装的&#xff0c;很简单&#xff0c;访问&#xff1a;https://ollama.com/ &#xff0c;下载windows安装包&#xff0c;打开安装就行了。 cmd输入ollama -v检…

Mybatis、Mybatis-Plus 调用同一个组件的查询时遇到的坑

Mybatis、Mybatis-Plus 调用同一个组件的查询时遇到的坑 Mybais-plus配置了驼峰自动命名&#xff0c;所以不需要在SQL里转化查询。

ssm070基于SSM框架的校园代购服务订单管理系统的设计与实现+vue(论文+源码)_kaic

毕业设计 题 目&#xff1a; 校园代购服务订单管理系统 作 者&#xff1a; 学 号&#xff1a; 所属学院&#xff1a; 专业年级&#xff1a; 学校导师&#xff1a; 职 称&#xff1a; 班级导师&#xff1a; 职 称&#xff1a; 完成时间…

ECharts折线图背景渐变设置

目录 引入 1.在一个HTML文件中编写两个图表 2.渐变背景 引入 如何在一个HTML文件中编写两个图表&#xff1a;&#xff08;这个例子基于这个篇文章的基础&#xff09;一篇搞懂前端获取数据-CSDN博客 一个例子&#xff1a; 1.在一个HTML文件中编写两个图表 重点在于名字的不重…

Webserver(4.6)poll和epoll

目录 pollclient.cpoll.c epollepoll.cclient.c epoll的两种工作模式水平触发边沿触发 poll poll是对select的一个改进 select的缺点在于每次都需要将fd集合从用户态拷贝到内核态&#xff0c;开销很大。每次调用select都需要在内核遍历传递进来的所有fd&#xff0c;这个开销也…

提高交换网络可靠性之认识STP根桥与端口角色

转载请注明出处 该实验旨在学习如何选举根桥与识别端口角色。 1.三台交换机按要求连线&#xff0c;改名&#xff0c;分别为S1&#xff0c;S2&#xff0c;S3&#xff0c;以S1为例&#xff1a; 2.在S1上配置优先级为28672 同理&#xff0c;在交换机S2和S3上配置其优先级为32768&…

qt QTextDocument详解

1、概述 QTextDocument是Qt框架中用于处理文本文档的类&#xff0c;它提供了丰富的功能和接口&#xff0c;用于创建、编辑和格式化文本内容。该类能够保存格式化的文本&#xff0c;是结构化富文本文档的容器&#xff0c;支持样式文本和各种文档元素&#xff0c;如列表、表格、…

【UE5】在材质中实现球形法线技术,常用于改善植物等表面的渲染效果

在材质中实现球形法线&#xff0c;这种技术常用于植被渲染等场景。通过应用球形法线可以显著提升植物再低几何体情况下的光照效果。 三二一上截图&#xff01; 当然也可以用于任何你希望模型圆润的地方&#xff0c;下图中做了一个Cube倒角

提高交换网络可靠性之链路聚合

转载请注明出处 该实验为链路聚合的配置实验。 1.改名&#xff0c;分别将交换机1和交换机2改名为S1&#xff0c;S2&#xff0c;然后查看S1&#xff0c;S2的STP信息。以交换机1为例&#x1f447;。 2.交换机S1&#xff0c;S2上创建聚合端口&#xff0c;将端口加入聚合端口。以S…

ZISUOJ 2024算法基础公选课练习一(3)

前言、 接&#xff08;2&#xff09;后完成I-J两道题 一、题目总览 二、具体题目 2.1 问题 I: 帆帆的图&#xff1a; 思路&#xff1a; 考察拓扑排序和图论&#xff08;拓扑排序也是排序&#xff0c;<滑稽>&#xff09;&#xff0c;都是模板&#xff0c;我就直接拿去…