用S7-200对较难命题编程的几个实例与解析.docVIP

用S7-200对较难命题编程的几个实例与解析.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用S7-200对较难命题编程的几个实例与解析

网上有很多求助PLC编程的帖子,很有探讨价值,我经常帮助他们去编程,这不仅是帮助他们解决问题,而且对己也是一种锻炼与提高。现选出几个求助 帖,都是具有一定难度的编程命题,它可以使我们增强思维,提高编程的技巧和能力。现将这几个帖子并同我为之编写的程序一起贴出,愿与大家共享与探讨,如有 不对之处,请给于指正,本人深表感谢。 一帖:“我想做一个小程序,每半个小时循环一次,每次循环内部又要执行20次几乎相同的操作(第一 个90秒之内Q0.0?输出5秒,Q0.0输出延时2秒Q0.1 输出0.5秒。第二个90秒,输出点变为Q0.2和Q0.3,以此类推)。我想用一个子程序,不想书写20次子程序调用,只书写一次子程序调用,利用循环 可以实现不,任何实现?请高手给我指点指点。期待您的指点。” 我的思路:按着楼主要求用S7-200编写了一个子程序(SBR_1),该子 程序运行时间为半小时,在此时间内重复执行20次类似的控制动作,不同点就是输出口依次下移:第一次输出口为Q0.0、Q0.1,第二次输出为Q0.2、 Q0.3,第三次输出为Q0.4、Q0.5……。在主程序中,设定I0.1为启动命令按钮,设I0.2为停止运行按钮。只要按一下I0.1启动,程序将自 动执行每半小时调一次SBR_1子程序,重复调用,直到按下I0.2停止按钮,程序才终止运行。 该子程序共占据输出口40个,整整是5个输出通道(?QB0、QB1、…QB5)如按正常编程,这20个类似动作由于输出口不同,需一一调用,这样编出的程序太长。经过反复思考,我是这样编程的: 1、?我利用指针指令,首址指向QB0,每执行完一个通道动作后,令指针地址加1,这样循环5次,其输出即可由QB0依次移到QB5。 2、?对 一个输出通道内的传送地址,是采用“与”、“或”指令进行的,比如第一次输出,先将QB0清0,将MB2=1,MB3=2。当运行80秒时将QB0与 MB2相或运算,其结果:Q0.0=1,延时82秒将QB0与MB3相或运算,其结果:Q0.0=1,Q0.1=1。当运行85秒时将MB2求反送入 MB4,此时MB4=16#FE,再用QB0与MB4相与运算,其结果:Q0.0=0,Q0.1=1,当运行87秒时将MB3求反送入MB5,此时 MB5=16#FB,再用QB0与MB5相与运算,其结果:Q0.0=0,Q0.1=0,从而达到在第一个90秒内使Q0.0输出为1且保持5秒后复位, 使Q0.1滞后Q0.1两秒输出为1且保持5秒复位的控制要求。第二次动作时,先将MW2左移2位,即使MB2=04,MB3=8再重复上述动作,其结 果:Q0.2=1,延时5秒复位,Q0.3滞后二秒输出为1,保持5秒复位,从而达到第二次动作时其输出下移到Q0.2、Q0.3。具体动作控制,请见下 面梯形图: 主程序: 子程序:SBR_1 该程序经上机运行(为缩短运行时间按图中注解的试验时改动数据运行),动作正确,符合命题要求。 二 帖:“有5个执行动作我转换为操作数,姑且定为D10、D20、D30、D40、D50,它们每一个都可能写入从0 到5的数值。最后执行是从1到5 依次执行输出,是0的不执行跳过,不知如何编,请高手指点,谢谢了!”又“……如这一次是按1/2/3/4/5依次动作,下一次也许设置为按5/3/2 /动作,再下一次就1/5/2/3/。。。。。”、“两次执行的间隔时间可设定,暂定3秒看设备运转情况而定” 我的编程构思: 一、PLC的硬件设置及有关事项说明:选用S7-200PLC编程。 1、其输入口: I1.0 为启动按钮, I1.1 为停止动作按钮。 *** 以下的I0.0 ~ I0.5 六个输入点是为手动设置参数的按钮地址。是为在没有上位机或触摸屏与PLC通讯的条件下,可用这6个按钮,对5路执行机构的动作顺序号及动作间隔时间进行手动设置。其各输入点定义如下: I0.0 为设置第1路执行机构执行动作的顺序号按钮 I0.1 为设置第2 ~ 5路执行机构执行动作的顺序号按钮,设置值:0~5 I0.2 为设置第2 ~ 5路执行机构执行动作的顺序号左移8位按钮 I0.3 为复位按钮,即将第1~ 第5 路机构的顺序号清0,其作用是为更改5个机构动作的顺序号值做清0准备。 I0.4 为相邻二个机构动作时间间隔值的个位数设置按钮,设置值:0~F(16进制数) I0.5 将时间设定值左移4位按钮 ? 2、其输出口: Q0.0 为第1路执行机构输出 Q0.1 为第2路执行机构输出 Q0.2 为第3路执行机构输出 Q0.3 为第4路执行机构输出 Q0.4 为第5路执行机构输出 3、VB10、VB11、VB12、VB13、VB14分别为第1~第5执行机构动作顺序号设置区 为节省设置按钮,将VB11、VB12、VB13、VB14合并为一个双字存储

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档