huayu 发表于 2024-7-10 18:16:53

TC系列HMI如何将用户权限更改为动态密码?

<p>1、客户为了便于维护现场设备,但同时又避免终端客户随意修改设备参数,故采用动态密码赋予终端客户临时权限,动态密码每小时自动更新一次;</p><p>2、此用户等级为不同级别的保护,但是密码均为固定不可自动变更的;</p><p>3、对数值输入对话框进行保护,并赋予密码6等级;</p><p>4、通过系统寄存器的运算和赋值,将用户等级更改为动态密码,此动态密码与时间相关,并赋予计算公式,得到密码赋给SRW10118,每次需要赋予终端客户临时权限时,只需根据计算公式算出密码,并将此密码告知终端用户即可。</p><p>5、代码如下:</p><p>#include &lt;macro.h&gt;</p><p>int MacroMain()</p><p>{</p><p>// Here to add macro code.</p><p>unsigned short data = {0};</p><p>unsigned short p1 = 0;//年</p><p>unsigned short p2 = 0;//月</p><p>unsigned short p3 = 0;//日</p><p>unsigned short p4 = 0;//时</p><p>unsigned int p5,p6;</p><p>char mima1 = {0};</p><p>char mima2 = {0};</p><p>GetMem(data,@时间@,0,4*sizeof(unsigned short));</p><p>p1 = data;</p><p>p2 = data;</p><p>p3 = data;</p><p>p4 = data;</p><p>p5=p1*p2+p3*p4;//计算公式</p><p>p6=p4*3600+p2*30;</p><p>mima1 = (p5/10000+0x30);</p><p>mima1 = ((p5%10000/1000)+0x30);</p><p>mima1 = ((p5%1000/100)+0x30);</p><p>mima1 = ((p5%100/10)+0x30);</p><p>mima1 = ((p5%10)+0x30);</p><p><br/></p><p>mima2 = (p6/10000+0x30);</p><p>mima2 = ((p6%10000/1000)+0x30);</p><p>mima2 = ((p6%1000/100)+0x30);</p><p>mima2 = ((p6%100/10)+0x30);</p><p>mima2 = ((p6%10)+0x30);</p><p>SetMem(mima1,@密码@,0,8);</p><p>SetMem(mima2,@密码@,4,8);&nbsp;</p><p><br/></p><p>return 0;</p><p>}</p><p><br/></p>
页: [1]
查看完整版本: TC系列HMI如何将用户权限更改为动态密码?