在操作台上面有3个按钮(分别是上、下、确定分别接到plc的i0.0、i0.1、i0.2三个输入端子)在另一端是触摸屏。由于条件限制不能用手直接触摸到屏 所以只能通过这3个按键来控制 触摸屏上的键。
第一级设计要求:简单的3个按钮 控制只有1页画面的 1竖排5个动画按钮!!!
第二级设计要求:中等难度的,通过上下左右确定(5个按钮 plc 5个输入)控制触摸屏上横3竖3共9个按钮。
第三级设计要求:令人发狂的,用上下左右确定5个按钮控制触摸屏上 3个 或者更多页面的画面。。
plc为西门子自定、触摸屏为亦自定。无论设计出哪一级要求的即可!
PLC类型任意选择,回答的最好最完全的,原创最多,阐述最详细者获一等奖!
工控PLC擂台每周一期,本期待59期结束一周后结贴。奖项设置:一等奖1名:30~50MP,二等奖3名:10MP,三等奖10名:100积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
楼主最近还看过
首先本文是写于6.20日下午。楼上的都还没有写程序的,本人是第一个写的,也希望后续写的人能用其他方式实现,不要抄袭我的创意,哈哈,看看能不能给个第一。先来做第二题,第一题就太没有意思了。首先我们看如下的数据排列,这个是我们实现方案的核心。数据按*2的方式排布。左右移动差别为2倍,上下移动数据差别为8倍。如果更多行列也可以按照此规则排布。
1 | 2 | 4 |
8 | 16 | 32 |
64 | 128 | 256 |
另外一个需要注意的是我们PLC的寄存器可以和位对应,寄存器(16位)的bit0~bit15对应16位开关量输出,例如0065~00080的16个位对应一个寄存器,0081~0096对应一个寄存器。另外PLC编程1xxx为开关量输入,0xxxx变量为开关量输出和中间辅助节点。4xxxx为中间寄存器。
有了上面的铺垫,下面的程序应该可以看明白了。
最后一个图片是调试的窗口,0065-0073表示3*3的输出,显示的是光标
0081-0089为实际的输出,按确定键后可以输出。10001-10005可以直接在数值中输入数据,输入1或者ON为开关点导通,输入0或者OFF为断开。
plc程序下载以及PLC软件仿真请访问http://www.plcstar.com/plcstar/downloads/dl02/234.html
原程序下载可访问:http://www.plcstar.com/plcstar/downloads/dl02/259.html
思路:
1 2 3 上
4 5 6 左 确定 右
7 8 9 下
上+左+确定=键1
上+确定=键2
上+右+确定=键3
.
.
下+右+确定=键9
1、采用自锁带灯按钮,便于输入观察;采用以上按键对应关系,便于理解和操作工输入;
2、以确定键上升沿作为输入状态确认和按键选择标志位置位,以确认键下降沿作为按键选择标志位复位;确认件指示灯判断是否有效,当输入有效,灯长亮;无效输入,灯闪烁;
接口和主要存储标志位
I0.0 确认 I0.1 上 I0.2 下 I0.3 左 I0.4 右
m0.1 --m0.7 键1-7选择标志位 m1.0 键8 m1.1 键9 m0.0 常0
m100.2 确认请求 m100.3 输入错误
回复内容:
对:yexiaomeng关于楼主和楼上的都考虑太复杂了,实际上只要3个按钮就能实现所有的功能。一个上,一个下,一个确定足矣。定义一个中间变量MB0,可以实现0~255个按钮;如果定义MW0可以实现0~65535个按钮。不才就简短的写个流程(以256个按钮为例):初始化: MB0=0;按“上”(上跳沿)时 MB0加1,如果等于255则等于0;按“下”(上跳沿)时,MB0减1,如果等于0则等于255;按“确定”(上跳沿)时,根据MB0的内容执行不同的操作,也可以定义MB0的某些值为翻页操作。这样操作即节省IO点,程序也简单。内容的回复:
楼上的方案在程序实现上并没有错,但我认为在应用上尤其是工业应用上不靠谱。存在以下几个方面的缺陷:
1、输入不方便,操作人员需要计算按了几次按钮,然后再按确认键,例如9键,需要按9次,很容易出错;
2、没有状态显示,操作人员有可能甚至无法确定当前的选择状态,输入出错没提示;
3、说法有误,工业控制上按键选择不是简单的算术,超过255(按键范围),只能判定为无效,不存在赋0再重新计数的说法;
回复内容:
对:戴国政关于回复内容:对:yexiaomeng关于楼主和楼上的都考虑太复杂了,实际上只要3个按钮就能实现所有的功能。一个上,一个下,一个确定足矣。定义一个中间变量MB0,可以实现0~255个按钮;如果定义MW0可以实现0~65535个按钮。不才就简短的写个流程(以256个按钮为例):初始化: MB0=0;按“上”(上跳沿)时 MB0加1,如果等于255则等于0;按“下”(上跳沿)时,MB0减1,如果等于0则等于255;按“确定”(上跳沿)时,根据MB0的内容执行不同的操作,也可以定义MB0的某些值为翻页操作。这样操作即节省IO点,程序也简单。内容的回复: 楼上的方案在程序实现上并没有错,但我认为在应用上尤其是工业应用上不靠谱。存在以下几个方面的缺陷:1、输入不方便,操作人员需要计算按了几次按钮,然后再按确认键,例如9键,需要按9次,很容易出错;2、没有状态显示,操作人员有可能甚至无法确定当前的选择状态,输入出错没提示;3、说法有误,工业控制上按键选择不是简单的算术,超过255(按键范围),只能判定为无效,不存在赋0再重新计数的说法;内容的回复:
而且您的程序更不方便,我要同时按四个键才能实现一个动作,这个可能吗?
如果要再加两个按钮,也仅仅只是减少按键的次数,这个也很简单,如果是个5×5的矩阵,假设矩阵以列优先,上下按钮的时候MB0加减1,左右的按钮MB0加减5.不才的做法方便之处就是可以实现n×n的键盘矩阵,只要n<255.假设矩阵
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
人机界面显示
答楼上:
1、要实现直观的显示当前选择状态,当然要有指示灯显示,所以一开始设计时会选择自锁带灯按钮。例外上面的设计中按键的排列也很讲究。例如:确定灯亮,说明做了有效的选择,确定灯闪烁,说明作了错误的选择,则需要取消重新选择;上+左灯亮,说明选择了键1,下+右灯亮,说明选择了键9,这是符合人对键盘的理解的。也就是说最多按两个键就可以完成选择;而如果通过点动加减计算,则最多需要9次按键;
2、触摸屏显示,首先我们要考虑操作台到触摸屏的距离。遇上近视眼,超过2米则人兽不分,在这种基础上,假设最大按键计数为9,某个娃手一抖按了10次,触摸屏离得远,又看不到选择状态,于是最终选择了按键1却以为自己选择了按键9,杯具了;
3、如果是5*5的键盘,我就会选择5*5个按键,外加一个确定键,不玩任何花招,因为太容易出错,操作工不是数学家,紧急情况下也不允许去做算术,所以宁愿在硬件上多花费点也要确保操作简单和安全;
4、至于触摸屏的编程,大部分情况下,和玩泥巴差不多;
回复内容:
对:戴国政关于答楼上: 1、要实现直观的显示当前选择状态,当然要有指示灯显示,所以一开始设计时会选择自锁带灯按钮。例外上面的设计中按键的排列也很讲究。例如:确定灯亮,说明做了有效的选择,确定灯闪烁,说明作了错误的选择,则需要取消重新选择;上+左灯亮,说明选择了键1,下+右灯亮,说明选择了键9,这是符合人对键盘的理解的。也就是说最多按两个键就可以完成选择;而如果通过点动加减计算,则最多需要9次按键; 2、触摸屏显示,首先我们要考虑操作台到触摸屏的距离。遇上近视眼,超过2米则人兽不分,在这种基础上,假设最大按键计数为9,某个娃手一抖按了10次,触摸屏离得远,又看不到选择状态,于是最终选择了按键1却以为自己选择了按键9,杯具了; 3、如果是5*5的键盘,我就会选择5*5个按键,外加一个确定键,不玩任何花招,因为太容易出错,操作工不是数学家,紧急情况下也不允许去做算术,所以宁愿在硬件上多花费点也要确保操作简单和安全; 4、至于触摸屏的编程,大部分情况下,和玩泥巴差不多;内容的回复:
我在这里只是纯粹讨论问题,如果有言语上有冲突的,我说声对不起。
1.操作工不仅不是数学家,也没有能够把所有的组合键都记住的,就像电脑键盘上的组合键有谁能够全部记住?不才的意思并没有让操作工算术,而是根据人机交互,具体的怎么计算不用担心。
2.如果我是老板我也不会选择近视到不行的操作工,不说看人机,搞不好开机都可以把人弄死。
3.人机界面并没有多少难度,但是人界面的意义在于怎样更好的实现人机交互。所以可以很好的发挥人机界面的特点。一般不才设计人机界面的时候都要加动画设计的一个模拟开机的界面,不用开机在人机界面上就可以完成设备的常规操作。
PLC:S7-200
我只说思路
1.设一个变量动作--地址:MB0
2.3个输入点
I0.0,接一按钮,使用上升沿命令,按一次按钮变量动作+1。
I0.1 ,接一按钮,使用上升沿命令,按一次按钮变量动作-1
I0.2 接一按钮,使用上升沿命令,按下,就置位M0.0;松开,使用下降沿命令,复位M0.0
3.在触摸屏上做一个变量显示窗口,显示变量动作的值
4.在触摸屏编写不同的变量值对应不同的动作,并且检测到M0.0==1时执行一次动作。
例如:当变量动作==1时,对应的动作是点击触摸屏上三个并排着的按键中左边第一个,当M0.0==1执行一次。
其他的切换窗口,或者什么的就看需要了。