工业PLC实用知识.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工业PLC实用知识

1.. 主题:请问如何用最简单的程序实现这个功能? ? 用一个按钮控制一台电机的启动和停止。按钮按下去一次,电机启动,按下去两次,电机停止。假设按钮的输入点是?i1.0???输出给电机线圈的点是Q1.0 ????要是用三菱的plc,可以直接用: ???????????LD??????I1.0 ???????????ALT?????M1 ???????????LD??????M1 ???????????OUT?????Q1.0 它的程序里面有alt这个命令可以直接将位反相,请问,用S7-300怎么能用最简单的程序实现上述功能,谢谢 A?????I??????0.0 ??????FP????M??????0.0 ??????X?????Q??????0.0 ??????=?????Q??????0.0 2.. 主题:(原创)两个S7-200的功能用S7-300实现 ? STEP7中好象没有象S7-200里的带记忆功能的定时器(TONR),只看到一个TI-S7文件夹里有一个FC81写着是TONR,但是打开看了却是一头雾水,里面还要用到上一次扫描周期,所以不会用。我自己试着写了一个功能块: FUNCTION_BLOCK?FB80 TITLE?=带记忆功能的定时器 // AUTHOR?:?Shyer NAME?:?TONR VERSION?:?1.0 VAR_INPUT ??En?:?BOOL?;???//使能定时信号 ??Rst?:?BOOL?;??//复位信号 ??Pv?:?S5TIME?;?//设定值(S5TIME格式) ??T_NO?:?TIMER?;????//定时器号 END_VAR VAR_OUTPUT ??Out?:?BOOL?;??//输出 END_VAR VAR ??En_Edge?:?BOOL?;?? ??Interrupt_Flag?:?BOOL?;??? ??Ren_BCD?:?WORD?;?? END_VAR BEGIN ??????A?????#Rst;? ??????R?????#T_NO;? ??????R?????#Interrupt_Flag;? ??????R?????#Out;? ??????JC????EXIT;? ??????A?????#En;? ??????FN????#En_Edge; ??????S?????#Interrupt_Flag;? ??????JCN???_001;? ??????LC????#T_NO;? ??????T?????#Ren_BCD;? _001:?L?????#Pv;? ??????A?????#Interrupt_Flag;? ??????JCN???_002;? ??????L?????#Ren_BCD;? _002:?A?????#En;? ??????SD????#T_NO;? ??????A?????#T_NO;? ??????S?????#Out;? EXIT:?SET???;? ??????SAVE??;? ??????CLR???;? END_FUNCTION_BLOCK 在S7-300中只有双字循环移位,下面我写了个字节循环移位的FC(字移位的类似): function?fc100:void var_input in:byte;?//要循环移位的源数据 n:int;?//要移动的位数,正为左移,负为右移 end_var var_output out:byte;?//结果保存 end_var var_temp tmp0:byte; tmp1:int; end_var begin l?in; t?tmp0; l?n; l?0; ==i; jc?exit; jp?left; l?n; negi; _001:t?tmp1; l?tmp0; srd?1; t?tmp0; a?0; S?L0.7; l?tmp1; loop?_001; ju?exit; left:l?n; _002:t?tmp1; l?tmp0; push; cad; od; sld?1; t?tmp0; a?0; s?L0.0; l?tmp1; loop?_002; exit:l?tmp0; t?out; set;? save; clr; beu; end_function 伊默你好,定时器保持,可以置位一个db中的位,你编这么多程序什么意思,是把定时器存在FLASH中了? 这个是和S7-200中的TONR一样的功能。比如你用I0.0接通来定时T0,定时时间为10秒,当你I0.0接通4秒后,断开,过段时间I0.0又接通,这样T0会从刚才的断点开始定时,即第二次的定时设置值为10-4=6S,也就是说只要I0.0接通的时间之和大于10S,则T0置位,而不在乎这个过程中I0.0

文档评论(0)

sd44055 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档