首页 上一页 1 2 3 下一页 尾页

关于PLC与触摸屏实现翻页 点击:8013 | 回复:45



gongkongedit

    
  • 精华:1043帖
  • 求助:0帖
  • 帖子:14114帖 | 54470回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2008年9月08日
发表于:2003-08-26 23:13:00
楼主
关于PLC与触摸屏实现翻页 近段时间开发一种机器系统,其中有一项功能是将每天的机器工作数目在触摸屏中显示出来,天数要两年;并且只要输入日期,触摸屏上就可以将任意时间的数目进行统计。我自己设计了一个程序,愿与大家分享。如有问题请指正。 l 画面讲述 本系统用的是OMRON的CQM1H-51的PLC,触摸屏用的是Pro-face的GP577R。其画面如下图1-A所见。 1- A 图中所示的B1按下后,就可以设置统计日期;设置完后,再按一下B2,就会统计两年内任意日期内的工件数。A1下的是指示数,从1~730,A2下的是年月日,如(030528)指的是03年05月28日。A3即每天的工件数。C1是向上翻页键,C2是向上翻行键,C3是向下翻页键,C4是向下翻行键。 l 地址分布 触摸屏的系统地址从DM500开始。 A1下的数字用的是一个触摸屏中的N标签,其功能如图2-A所示。地址是触摸屏的内部地址区域,我用的是LS2000; N标签上有一个运算,从上到下分别是LS2000+1~LS2000+10。 A2下的数字用的是一个触摸屏中的两位E标签,其功能如图2-B所示。地址是PLC的内部地址区域,我用的是DM1000~1001。从上到下分别是DM1000~DM1018。 A3下的数字用的也是一个触摸屏中的两位E标签,其功能如图2-C所示。地址是PLC的内部地址区域,我用的是DM2000~2001。从上到下分别是DM2000~DM2018。 B1是触摸键,用来设定起始日期和终止日期日期。B2=22915,用来触发统计总的工件数。 C1~C4用的是一个触摸屏中的T标签,其功能如图2-D所示。地址是触摸屏的内部地址区域,C1=LS50102,C2=LS50103,C3=LS50100 ,C4=LS50101。 2-A 2-B 2-C 2-D 限于篇幅,我就不详细说明以上的图;请大家仔细看以上的图。 l 触摸屏程序 Pro-face的触摸屏有D-Script Editor功能,请大家看以下的程序。 ID : 0000 Trigger : Bit Rising , Edge Bit Address : LS050100 Formula : if ([w:LS1000]<=758) {[w:LS1000]=[w:LS1000]+2 } endif Date Type : BCD Data Length : 16 Bit 此程序的是用来向下翻行,即指示值(A1)小于758时,将画面向下翻一行。 ID : 0001 Trigger : Bit Rising , Edge Bit Address : LS050101 Formula : if ([w:LS1000]<=720) {[w:LS1000]=[w:LS1000]+40 } endif Date Type : BCD Data Length : 16 Bit 此程序的是用来向下翻页,即指示值(A1)小于720时,将画面向下翻一页。 ID : 0002 Trigger : Bit Rising , Edge Bit Address : LS050102 Formula : if ([w:LS1000]>=40) {[w:LS1000]=[w:LS1000]-40 } endif Date Type : BCD Data Length : 16 Bit 此程序的是用来向上翻页,即指示值(A1)大于等于40时,将画面向上翻一页。 ID : 0003 Trigger : Bit Rising , Edge Bit Address : LS050103 Formula : if ([w:LS1000]>=2) {[w:LS1000]=[w:LS1000]-2 } endif Date Type : BCD Data Length : 16 Bit 此程序的是用来向上翻行,即指示值(A1)大于等于2时,将画面向上翻一行。 ID : 0004 Trigger : Timer Fn , Timer Duration : 1 Formula : [w:LS2000]=[w:LS1000]/2 Date Type : BCD Data Length : 16 Bit 此程序的显示指示数A1。 l PLC程序 [NETWORK] Name="calendar"(本段是将每天的日期转换到触摸屏中) [STATEMENTLIST] LD 253.13 OUT TR0 CMP DM0502 HR92 //DM0502是系统的年 AND NOT 255.06 LD TR0 AND 049.02 OR LD AND NOT TIM252 AND NOT 049.03 AND NOT 049.04 OUT 049.02 TIM 252 #0010 LD TR0 MOV DM0502 HR92 CMP DM0503 HR93 //DM0503是系统的月 AND NOT 255.06 LD TR0 AND 049.03 OR LD AND NOT TIM253 AND NOT 049.04 OUT 049.03 TIM 253 #0010 LD TR0 MOV DM0503 HR93 CMP DM0504 HR94 //DM0504是系统的日 AND NOT 255.06 OUT 049.04 LD TR0 MOV DM0504 HR94 AND TIM252 LD TR0 AND TIM253 OR LD LD TR0 AND 049.04 OR LD OUT TR1 ADD #0002 DM0070 DM0070 //DM0070是指针字 CMP DM0070 #0800 AND 255.05 LD TR1 AND 255.06 OR LD MOV #0000 DM0070 LD TR1 ADD DM0070 #2000 DM0076 //间接寻址,DM2000 ADD DM0070 #2001 DM0077 //间接寻址,DM2001 ADD DM0070 #1000 DM0074 //间接寻址,DM1000 BSET #0000 *DM0076 *DM0077 MCRO 10 DM0502 DM0626 //子程序入口 XFER #0002 DM0628 *DM0074 //日期写入触摸屏 [NETWORK] Name="count&reset"(本段是程序记数与复位) [STATEMENTLIST] LD 253.13 OUT TR0 AND 228.10 //触摸屏上清零键 DIFU 080.10 LD TR0 AND 080.10 BSET #0000 DM0066 DM0067 //DM0066~67位计数值 LD T


楼主最近还看过



小安

  • 精华:0帖
  • 求助:0帖
  • 帖子:18帖 | 112回
  • 年度积分:0
  • 历史总积分:269
  • 注册:2003年4月12日
发表于:2003-08-24 10:56:00
41楼
触摸屏的翻頁用触摸屏自己本身的宏命令來完成不行嗎?的確沒必要來加這么多,而且用plc來配合触摸屏實現翻頁的功能的確只須用一個命令就可完成,似乎沒必要太多!

aRes

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:105
  • 注册:2003年3月02日
发表于:2003-08-24 12:20:00
42楼
好多东西啊,我大概的看了一下,感到都是高手, 我也想多学学plc和触摸屏的连接技术, 不知道那位大侠有没有这方面的资料, 请寄:liuf411@sina.com.cn

Puyoto

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 13回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2003年8月23日
发表于:2003-08-26 23:13:00
43楼
QingSong所遇到的情况我也曾碰到。只不过变成了对生产数据进行集中打印。并且我当时使用的是HITECH屏,它提供的宏指令很低级,类似于汇编指令,不像Pro-face那样可以使用象Basic那样的较高级的脚本语言(我没有用过Pro-face屏,不知这样说有没有错),还有就是HITECH的打印功能只支持屏幕打印,而不支持报表(后台)打印。问题就这样提出来了——生产的数据有可能有一千多笔,并且它们都必须显示在屏上后才能被打印出来;而且不是所有的数据都会被打印,实际情况是应由用户决定哪些可以打印、哪些不能被打印出来。这里就遇到了打印时的根据要求换画面和打印前由用户预览选择打印范围。 生产采样数据存储在HITECH提供的配方卡中。用户预览数据和选择打印范围的工作由屏通过宏指令独立完成;而最后的打印工作则由PLC和屏配合完成。由于打印时PLC会要求屏换屏和打印,并且有可能打印的同时会发生数据的采样及传输至屏配方卡,所以当时我采用了一种多任务同步执行机制(由于PLC是周期扫描式运行的,那么我们就可以创建任务模型,给每一个任务分配一个任务ID,将可能会发生通讯冲突的任务通过一个叫做通讯调渡的PLC过程统一管理。这样在任一时刻只有一个任务在占用通讯,而同时其它任务就进入一个任务队列中排队等待。当然在PLC中实现队列结构应该不会占用太多扫描时间,在实际运行中也证明了这点。如果知道配方卡管理方式的读者就知道保证通讯的正确完成有多重要。),这样就能保证在打印屏幕时屏上所显示的一定是生产数据而不是其它无关画面。 有人说屏本身自带的换屏功能就可解决所有画面切换问题,其实不然。其一:我想有许多读者都曾遇到过类似问题:当PLC控制屏弹出一画面(比如对话框之类)并且经过用户确认或处理后应当返回到该画面先前画面时,可能就会出问题。因为PLC要控制显示某一画面前必须知道屏当前显示的是哪一幅画面,以便用户关闭由PLC弹出的这一画面后屏应当返回的是哪一幅画面。因为屏显示的当前画面是由屏周期地写入到PLC相应地址的,这样有可PLC得到的当前画面是更新以前的画面号,这样返回画面就不是用户所希望的了。当然,这种情况对一些应用是无害的,最多不过给用户的感觉是“哦,画面换错了”,但是在另一些应用中这种情况就会出问题,比如该画面是某类向导或对某些数据进行累加(乘)运算等。其二:我们在屏上做一些类似于网页的应用或干脆就是帮助系统时,就有必要按照我们自己的要求管理画面切换。最低要求也应该实现一个画面堆栈,以方便用户回退查看先前画面(类似于Windows资源管理器上的“后退”功能)。 Puyoto

雪霖

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2007年5月30日
发表于:2007-05-31 13:37:00
44楼
我是刚进公司,用的是松下的FP2/FP2SH的PLC和松下的GT01和GT11触摸屏,可是下载的FPWIN GR和GTWIN,我都不知道怎么用,请高手给点资料,谢谢了
xuelin1232003@yahoo.com.cn

汪孔乙

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 81回
  • 年度积分:0
  • 历史总积分:136
  • 注册:2009年8月24日
发表于:2017-09-14 14:29:19
45楼

能简单一点么,感觉好复杂 


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 下一页 尾页