因为前一阵子做了停车库的相关案例,突发奇想在HMI上做一个数码管显示剩余车辆的信息,今天上午没什么事情,索性就记录一下制作过程。
数码管显示数字原理
这是一个经典的数码管图片,我们对每个边编一个号码,想让他显示数字,就是控制对应的几个编号亮灭。
比如数字‘0’,我们只需要让7号灭,1~6号亮。
数字‘1’,我们需要让2~3亮,其余灭。
西门子HMI制作
我们首先添加一个颜色为黑色的矩形框为底面,为了显示更加清楚,也是用来模仿显示中的显示。
随后在黑底上面使用矩形框建7个小矩形框。
程序
我们建立一个FC块,输入就给数字,输出小矩形对应位置的亮灭。
CASE #I_iNum OF
0:
#T_byteLightOn := 2#0111_1110;
1:
#T_byteLightOn := 2#0000_1100;
2:
#T_byteLightOn := 2#1011_0110;
3:
#T_byteLightOn := 2#1001_1110;
4:
#T_byteLightOn := 2#1100_1100;
5:
#T_byteLightOn := 2#1101_1010;
6:
#T_byteLightOn := 2#1111_1010;
7:
#T_byteLightOn := 2#0000_1110;
8:
#T_byteLightOn := 2#1111_1110;
9:
#T_byteLightOn := 2#1101_1110;
ELSE
#T_byteLightOn := 2#0000_0000;
END_CASE;
#O_arrLightOn[1] := #T_byteLightOn.%X1;
#O_arrLightOn[2] := #T_byteLightOn.%X2;
#O_arrLightOn[3] := #T_byteLightOn.%X3;
#O_arrLightOn[4] := #T_byteLightOn.%X4;
#O_arrLightOn[5] := #T_byteLightOn.%X5;
#O_arrLightOn[6] := #T_byteLightOn.%X6;
#O_arrLightOn[7] := #T_byteLightOn.%X7;
程序对应写完之后,我们要对HMI对应变量链接:
以此类推,7个链接完。
效果
可以看出基本显示已经成功,但是没有亮绿色部分跟底色有些不搭,也就是美观性不足,我们需要改进。
改进
每块小矩形在不亮的时候我们让他和底色相同,就不会显示的那么突兀了。
效果如下:
这样显示是不是会更好呢?
好了,本次讲解结束,如有不懂的地方可以私信我哦。
标签:arrLightOn,byteLightOn,1110,西门子,.%,数码管,HMI From: https://blog.csdn.net/m0_73980647/article/details/141813122