欢迎来到天天文库
浏览记录
ID:40666969
大小:115.50 KB
页数:4页
时间:2019-08-05
《2.功能和样例:使用跳转分配器计算星期几》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、功能和样例:使用跳转分配器计算星期几>问题:当在STEP7中编程时,跳转分配器有什么特别的功能可以使用?解答:使用STEP7中的跳转分配器"SPL",在数据块依靠一个跳转标签就能够执行特殊的/有计划的跳转到程序部分。跳转分配器包含了最大为255个的调用语句(绝对跳转)和标志列表末尾的跳转标签或在SPA指令后的第一条指令。Ljumpnumber //LoadjumplabelSPL End; //JumptojumplabelEnd,whenthenumberofjumpsisgreater
2、thanthenumberofSPAinstructionsSPA M00; //JumptojumplabelM00(Akku=0)SPA M01; //JumptojumplabelM01(Akku=1)End:...在跳转标签"End"和跳转标签"End"的第一条指令之间,只允许用SPA指令。程序样例:星期几的计算在该样例中,计算对应于一个给定的日期,例如2005年5月10日,是星期几。对星期几的计算的基础是从2000到2064年的万年历。该日历包含两个表:·年月表·星期表。 通过日期
3、(例如2005年5月10日)来计算这一天是星期几的参考表是年表。在这里需要寻找2005年(此处为05)并且在对应的月表中找到月份的相对应数字,此处为“0”,然后就可以计算出关键数字:·关键数字=月鉴别数字+日历日期·关键数字=0+10=10年表 月表 一月二月三月四月五月六月七月八月九月十月十一月十二月 0937400351362402 1038511462403513 1139622503514624 1240034025036146 13412551361
4、40250 1442366240251361 1543400351362402 1644512503514624 1745033614625035 1846144025036146 1947255136140250 2048360351362402 2149511462403513 2250622503514624 2351033614625035 2452145136140250 2553366240251361 2654400351362402 27555114624035130028566
5、23614625035012957144025036146023058255136140250033159366240251361043260401462403513053361622503514624063462033614625035073563144025036146083664256240251361表1:年表和月表-为2000到2064年,1月到12月定义数字可以通过关键号码在星期表(表2)中决定星期几,在这里是星期四。星期一 2916233037星期二 310172431 星期三 4
6、11182532 星期四 512192633 星期五 613202734 星期六 714212835 星期日1815222936 表2:星期表样例:STEP7程序STEP7被编程设定为2000年到2030年,并且如果需要的话可以扩展到2064年。正如在年月表中看到的(表1),月份的标识数被循环。例如,2001年,2007年和2018年所对应的月份标识数是一样的。如上所述的对星期几的计算的步骤可以按照如下进行编程:·首先年月表要被压缩,带有相同月份标识数的年被合并。现在创建一个数据块DB20并且为
7、每一年安排一个数据类型为整型的域,例如,2000年的ARRAY[1..12]OFINT。索引1...12代表了一月份到十二月份。月份标识数作为数据块中的初始值被输入。
8、中执行。有了所有SPA跳转函数的列表,每一个关键数字(1...37)可以被分配到正确的星期几(1...7)。·使有一个额外的功能块FB10,会为每一年(2000年到2030年)分配相对的功能块(FB60,FB61,...)-因为关键数字和星期几的计算取决于年,月(或月标识数字)和日历天。输入参数需按照如下配置(以2005年5月10日为例):inputcalenderyear=5(for2005)inputcalendermonth=5(forMay)inputcalenderday=10outp
此文档下载收益归作者所有