全国咨询热线

027-87052087

您的位置: > 产品中心 >

银川中控系统 威纶通触摸屏宏指令如何编写时间限制?时间到停机要密码

发布时间:2020-11-09 23:32人气:

哪位帮我用宏指令编写时间到了停机 ,时间就用屏的时间。如:我要设备在2019年12月30日0时,时间到了置位PLC的M8034,然后在屏上输入 一个密码复位PLC的M8034。

回答:

在威纶通屏里写宏指令控制PLC的M8034,这种方法不是很非常好,现在三菱PLC的密码已经是非常容易解密的。

如果别人删除这一行怎么办。

如果用宏指令控制屏的一个画面,加上禁止上传、禁止反编译等,这样解密的可能性就小得多。

收款可以单片机做动态密码,自己也不知道他下一次会出现什么序号。

然后跟据序号,译出相应的密码输入,现在用的是32个字节的动态密码,密码 里面包含有时间,到期日期,一次最大充许三个月的密匙。

PLC里面一两个状态控制的,老一点的PLC很快就给破解了,真要用这些的,可以在人机方面增加一点值运算,至少保障性强一些。

但是人机也是可以破解的,价值不大的无所谓了,如价值大的甩屏,只能自己整了,我都是用ARM做的收费的,通讯是自动波特率的。

如果机器不是花大力气研发的,小动作加密下是可以的,破解你的设备也没那个必要。

这里我们编写一个宏代码来看看如何实现这个功能。

界面如下图:

界面上可以设置到期时间,实际使用时,可以不用精确到分秒。

这里仅是练手学习,可以参考,修改使用。

同时当前触摸屏的系统显示也在界面上显示出来。

后台有运行一宏指令,每隔200毫秒会检测设置时间与系统能否一至,相同则表示时间到。

执行置位相同寄存器来表示期限到。

宏内是直接将年,月,日,时,分,秒进行对比,也可以考虑使用时间戳来试试。

时间到后,会在界面点亮指示灯LB0。

具体使用如下:

第二行显示的是当前屏上的时间,如2020, 10, 25, 23, 15,00;(年,月多媒体中控,日,时,分,秒)

要测试的话,可设置第一行的程序到期时间,如2020, 10, 25, 23, 15,30.

这样30秒到点后,程序锁定。

在最后一行输入密码(预留有6组,分别对年月日时分秒延期,具体看宏1),

如111111,点击应用,程序会延长10秒,后到期再停止。

宏指令如下:

macro_command main()

bool bOn=false

GetData(bOn, "Local HMI", LB, 0, 1)

if bOn == true then

return

end if

//

short nY,nM,nD,nHour,nMinute,nSecond

GetData(nY, "Local HMI", RW, 0, 1)

GetData(nM, "Local HMI", RW, 1, 1)

GetData(nD, "Local HMI", RW, 2, 1)

GetData(nHour, "Local HMI", RW, 3, 1)

GetData(nMinute, "Local HMI", RW, 4, 1)

GetData(nSecond, "Local HMI", RW, 5, 1)

//本机时间获取

short nY1,nM1,nD1,nHour1,nMinute1,nSecond1

GetData(nY1, "Local HMI", LW, 9022, 1)

GetData(nM1, "Local HMI", LW, 9021, 1)

GetData(nD1, "Local HMI", LW, 9020, 1)

GetData(nHour1, "Local HMI", LW, 9019, 1)

GetData(nMinute1, "Local HMI", LW, 9018, 1)

推荐资讯

027-87052087