基于RSlogix5000的智能拼图游戏设计.doc
文本预览下载声明
1.引言
??????早在湘钢实习的时候,我晚上闲着无聊,就想到了用Concpt软件的梯形图,再加上Intouch画面监控软件设计小游戏。总共设计的游戏有好些,有米字棋,智能拼图,俄罗斯方块,打砖块,贪吃蛇等。因为精力的原因和兴趣的转移以及水平不够,设计并调试成功的只有米字棋和智能拼图。
??????现在衡管炼铁厂用的PLC是罗尔韦尔公司的AB系烈,编程软件是RSlogix5000,我们刚接触这个东西,自然需要大量的训练,因此就想到了将以前的游戏设计再用新的编程软件再编一下,由于RSlogix5000与Concpt梯形图元素与功能块有许多不同,编程思想也不完全一样。我在这里将具体的设计思想和梯形图程序,以画面软件配置写出来。
?
2.设计思想
???? 在监控软件动画设置中,有一项叫“可见性”,即通过一个的置“1”或置“0”来显示或隐藏该对象。本设计的就是利用一个数组A[9]作为控制九张图片可见性的变量,通过对数组的操作,在画上就此隐彼显,看起来图片好像在移动一样。
?
3.画面设计
????? 首先,在将一幅正方形的美女图片均等分割为3*3的9份,为方便叙述,命名为图1、图2、图3……、图9。在画面监控软件中新建一个窗口,拟定好三行三列的紧密相邻而不重叠的正方形的图片显示区域,命名为区、区、……区,将每一份图片导入,并将每复制成9份。建立一个标签数组A[9],值是,值域为0到。
???? 现在为这张图设置属性(图1、图2……、图各有。动画设置为:A[i]k时,图k可见,∈n,i∈[0,],k∈[1,]。?????通过以上画面设置,让每个区域都有图1到图8图片(区9有9张图片),并且A[i]=k, i,k∈n,i∈[0,],k∈[1,]时,区i内图k显现,特别地,A[i]=0或非法值时,区i里不显示任何图片,并且当区0里显示图1,区1里显示图2,……区7里显示图8时,区8里面就会出现图9,表示拼图成功。
?????另设一个开始按钮,触发时给数组A[9]中元素赋互不相同值,值域为0到8的自然数。设四个控制按钮,上、下、左、右分别触发shang、xia、zuo、you四个变量。
另外设一些动画,当拼图成功时,PLC程序传来指令,触发动画显示。
4.程序设计
?????程序设计很简单,轮询几个条件,如果条件满足,就生相应动作。
用计算机高级语言描述本程序逻辑如下:
Loop: for i=1 to 8
if A[i]==0 and i∈{0,1,2,3,4,5} and shang==1
then A[i]=A[i+3], A[i+3]=0,shang=0
end if;
if A[i]==0 and i∈{3,4,5,6,7,8} and xia==1
then A[i]=A[i-3], A[i-3]=0,xia=0
end if;
…
end for;
if A[0]==1 and A[1]==2 and A[2]==3 and A[3]==4 and A[4]==5 and A[5]==6 and A[6]==7 and A[7]==8
then shengli=1
else do loop
end if;
用梯形图实现该逻辑如下:
五.结束语
?????本设计巧处有两点:一个是实现数组的遍历,从中找出为零的一个元素,并对该元素与其它符合条件元素进行换值操作;另一个是从画面传来的shang、xia、zuo、you四个指令信号的时限问题,要求它在换值条件不满足时和条件满足且换值操作完成后立刻复位,因此将它设置为最长时限为计数器C1的一个循环周期,而且在C1的一个循环周期内,只执行一次换值操作,就避免了指令信号重复使用。
?????用数组元素值交换,设置可见性,实现监控画面上格子内容的互换,其编程思想可以设计更多走格子的游戏,例如下棋,挖地雷,贪吃蛇和俄罗斯方块等。
显示全部