台达疑问两则 点击:848 | 回复:18



梅花五

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-24 17:07:35
楼主

小弟请教:

1.用两个数字输入框实现密码登陆功能,用宏编写密码,如密码正确则跳转欢迎界面,停留几秒钟后进入功能界面,利用离线模拟能够正常工作,但是在屏上实际工作,则没有跳转功能,画面编号VW0为其命令区地址,求问题所在。

2.所用触屏型号为B07E515,所查看历史数据是否必须占用历史缓冲区,此型号触屏历史缓冲区是只有12个?如果需要30个左右历史数据需要记录,求推荐相关型号触屏。历史缓冲区调用方法是否是使用gethistory?

谢谢!




公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-06-25 11:17:40
1楼

1、用的是哪种宏,最好把宏指令贴上来看一下才能判断;

2、台达人机有12个缓存区,每个缓存区可以连续采样16个WORD的资料,所以你可以在PLC中处理,将30多个资料尽量放到连续地址中即可最多用3个缓存区完成采样。做显示可以用历史趋势图或历史数值表,一张图或一张表对应一个缓存区,如果要精确的历史数据定点查询则需要用到GETHISTORY宏指令来做。

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-25 11:47:52
2楼

回复内容:

对: 公孙小天 1、用的是哪种宏,最好把宏指令贴上来看一下才能判断;2... 内容的回复!


IF $20 == 1234 THEN GOTO LABEL 5

GOTO LABEL 11

LABEL 5

IF $24 == 5678 THEN GOTO LABEL 1

GOTO LABEL 2


LABEL 11

IF $20 == 1111 THEN GOTO LABEL 6

GOTO LABEL 22

LABEL 6

IF $24 == 1111 THEN GOTO LABEL 1

GOTO LABEL 2


LABEL 22

IF $20 == 2222 THEN GOTO LABEL 7

GOTO LABEL 2

LABEL 7

IF $24 == 2222 THEN GOTO LABEL 1

GOTO LABEL 2



LABEL 1

({Link2}2@VW0) = 9

Delay(1000)

({Link2}2@VW0) = 2

END

LABEL 2

({Link2}2@VW0) = 10

$20 = 0

$24 = 0

Delay(2000)

({Link2}2@VW0) = 1

END


上面是密码判断部分,如果两个数值输入框密码全对就会进入欢迎画面9,停留几秒后进入目录界面2。$20、$24是自己选的两个地址,VW0是控制区画面地址。

感谢公孙小天的帮助。


公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-06-25 12:27:02
3楼

这段指令你是放在哪个宏里的?画面CYCLE宏、画面开启宏还是CLOCK宏?

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-25 13:04:24
4楼

回复错了,放到子宏了,数字输入框直接调用

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-06-25 13:10:42
5楼

如果要做密码验证跳转画面的话,可以用密码权限表配合换画面按钮来做的,如果你一定要输入两个密码,可以参考这样的做法:

1、在选项——密码表设定中设一个1级密码、一个2级密码;

2、在开机画面中做1个换画面按钮(画面指向欢迎画面9,在生效准位中设成$20.0,使用者权限等级设为2,再勾选一下换画面后设为最低权限),再做1个设ON按钮,地址为$20.0。使用者权限等级1;执行时先要按$20.0设ON按钮,输入正确的1级密码后,换画面按钮才能起作用,然后再按换画面按钮,输入2级密码正确之后即可跳转;

3、在欢迎画面9的画面CYCLE宏中写上延时跳转即可。

Delay(1000)

({Link2}2@VW0) = 2

 

 

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-25 16:06:08
6楼

以上问题基本解决,但存在一个小瑕疵:如果第一个设on按钮输入2级密码,则点击第二个换画面按钮会直接进入欢迎界面,第二个按钮略嫌多余,我会再进行改进,谢谢公孙小天指导!

对于历史缓冲区具体使用,我还有几个疑问:

1.我让触屏记录某一位的历史数据,是否你能够在此为被触发也就是置1时开始记录?是通过设置触发源(Timer/PLC)实现吗?

2.自动停止是指关闭触摸屏电源后记录自动停止吗?

麻烦了


公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-06-25 16:39:42
7楼

确实是,2级权限密码可以解锁1级权限密码的,因为不太明白为什么你那边要求输入两个密码

。缓存区问题回复如下:

1、将触发源设为PLC,然后在选项——设置模块参数——控制中,设置一下命令区的起始地址,然后勾选“历史缓存区采样”,就可以定义对应的字地址来控制采样,将鼠标移到后面的两个点处,可以看到具体的位对应的采样标志,采样标志1就对应历史缓存区1,其他依次类推;

2、“自动停止”与你设的采样点数有关,指的是采样点数到达设定数目后是继续采样还是停止采样,如果继续采样,那么下一个采样点就会把第一个采样点覆盖,简单来说,假设采样点数是100点,勾选“自动停止”后你得到的是最前面的100个点,不勾的话得到的就是最后采集的100个点。

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-25 16:55:32
8楼

输入两个密码主要是想让第一个密码表示对应人员信息,第二个密码是分配给他的进入密码,就好像QQ能够对登陆人员进行区别控制,同时设置两个密码显得好看正式一些,这只是个人的一些想法,估计到最后还是会变成一个密码。感谢公孙小天的帮助,受益匪浅,祝顺利!

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-26 16:39:30
9楼

回复内容:

对: 公孙小天 确实是,2级权限密码可以解锁1级权限密码的,因为不太明... 内容的回复!


如果用换画面作为登陆方式,是否能够进行登陆信息记录来记录登陆人员级别和时间,因为换画面没有地址方面控制,感觉无法与历史缓冲区联系起来。求指教。

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-06-26 17:18:07
10楼

直接做没有办法,只能在运行前宏或后宏中来做了。

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-27 09:23:20
11楼

回复内容:

对: 公孙小天 直接做没有办法,只能在运行前宏或后宏中来做了。 内容的回复!


怎么在运行前宏或后宏来实现?感觉对这个换画面按钮没有检测输入权限的方式。

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-06-27 11:13:35
12楼

回复内容:

对: 梅花五  回复内容:对: 公孙小天  直接做没有办法,只能在运行... 内容的回复!


 抱歉没有考虑清楚,你要做记录登录时间之类的用户管理功能的话就不能只用权限密码了,因为触摸屏中只有系统状态区的一般控制字BIT8-BIT10中记录着当前的权限等级,做不了密码比对再记录登录时间的,还是回到你原先的方法用宏指令做比较吧,只是建议你把欢迎画面跳转到功能画面的宏换到欢迎画面的CYCLE宏中,不要混到判断记录一起。

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-27 11:26:18
13楼

嗯,好的,我再进行一些实验试试,把跳转功能加到画面的cycle中也会出现离线模拟正常,在屏上无法跳转的情况,不知道到底是哪里有问题,很困惑

公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-06-27 11:48:23
14楼

在PLC中监控一下VW0的值或者在画面上做一个数值显示来实际看一下,会不会是PLC中的程序或宏指令造成VW0没有变到9,造成另外双击一下画面属性,检查一下功能画面中的画面编号是不是9。

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-27 14:29:58
15楼

回复内容:

对: 公孙小天 在PLC中监控一下VW0的值或者在画面上做一个数值显示... 内容的回复!


谢谢,您的指点是我恍然大悟,监控运行是很有效的查错方式,测试时令({Link2}2@VW0) = 2,结果画面数制显示一直显示为512,然后改用宏BITON ({Link2}2@V1.1),画面数值显示为预期2,个人猜测这可能就是传说中的大端小端模式吧,但是用十六进制无论是赋值02H(显示512),还是20H(显示8192),都不能成功,还要进一步试验。

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-06-27 14:40:08
16楼

对十六位制经常容易犯迷糊,当设置({Link2}2@VW0) = 0200H能够实现预期跳转

梅花五

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2014年6月24日
发表于:2014-07-01 14:40:39
17楼

回复内容:

对: 公孙小天 在PLC中监控一下VW0的值或者在画面上做一个数值显示... 内容的回复!


1.离线模拟和实际屏幕操作中,画面监视情况不同,离线总是如预期所想,实际屏幕画面跳转不正常,很崩溃。

2.关于历史缓冲区,假设有三个连续双字地址需要进行采样10000次,是否只需要对每个地址进行对应地址连接,历史缓冲区是如何进行采样技术的,他的每个计数是从起始地址开始依次占用其后相应地址?我的地址连接:

({Link2}2@V6.0) = GETB ({Link2}2@M0.0)  //计数开始控制

({Link2}2@MD10) = ({Link2}2@VD100)      //地址分配,下同

({Link2}2@MD12) = ({Link2}2@VD110)

({Link2}2@MD14) = ({Link2}2@VD120)

是否连接错误?


公孙小天

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 263回
  • 年度积分:0
  • 历史总积分:1330
  • 注册:2005年12月27日
发表于:2014-07-01 16:24:10
18楼

1、西门子PLC的寄存器编号方式与其他控制器不一样,通常是使用BYTE做单位,比如VW0是由VB0和VB1两个字节组成,不同点在于VB0是高字节、VB1是低字节,正好与常见的编号习惯相反,用十六进制数据传输的时候高低字节也正好相反,你看一下是不是这里的问题;

2、历史缓存区采样是按照WORD为单位的,三个连续双字地址是占6个WORD,所以在设数值单位时要选6。还有你如果用VW6作为历史缓存区采样控制字,那么对应的BIT0位,应该是V7.0而不是V6.0,因为VW6是由VB6和VB7两个BYTE组成,VB7才是低字节。


热门招聘
相关主题

官方公众号

智造工程师