在S7-200中如何建立一个功能块.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . 在S7-200中如何建立一个功能块 一、基本数据类型 Bool 位 1/0 BYTE 字节 8 WORD 字 16 DWORD 双字 32 INT 整数 16 DINT 双整数 32 最高位为符号位0-整数;1-小数,后面15个位表示数据大小 Real 实数 32 单精度浮点 64 双精度浮点 Char 字符? 8 如:单个字母 String 字符串? 如:单词 ?字符:8位,等于一个字节 ?字符串:存储=字符个数+1字节 如smart :5个字符+1个字节=6个字节,这1个字节表示第一个地址,是存储个数。比如把smart存储到VB100中 第一个地址:是存储个数 VB100=5,因为有5个字符 第二个地址:VB101存储s 第三个地址:VB102存储m 第四个地址:VB103存储a 第五个地址:VB104存储r 第六个地址:VB105存储t 二、功能块指令的作用 在编写程序过程中有写控制要求或是一些运算会重复执行的,对于这些会重复执行的程序,为了提高编程的效率,往往会把一些会重复执行的功能编写成一个功能块。或者把一些应用到比较典型的做成一个指令。 二、功能块指令建立方法 在S7-200系列PL的程序结构中,分为主程序、子程序、中断程序。子程序分为带参数的子程序和不带参数的子程序,功能即为一个带参数的子程序。 三、功能块指令的建立 需要建立一个带参数的子程序,那么需要在子程序的变量表中(或接口区)中定义好相应的变量,然后在子程序的编程中,使用在变量表中定义的变量去编写程序,子程序上面就有相应的接口区。 ☆数据类型:对应地址,选好数据类型系统自动分配地址:如果选BYTE系统自动寻址→LBX;如果选WORD系统自动寻址→LWX。所以地址的分配不用管系统自动分配,是由数据类型决定的。 四、变量类型说明 变量的类型在使用过程中是不一样的,比如说子程序做好了以后有的位于子程序左侧,有的位于子程序右侧,有的在上面没有管脚。这跟习惯有关,左进右出。 变量类型(IN):输入参数为可读?变量,将调用它的POU提供的数据值传入子程序?,可以使用常数,直接寻址?间接寻址?的方传入到子程序。 在生成子程序块是位于左侧。这跟习惯有关,左进右出 ?可读:以PLC为例,可读的点是输入点,因为是从外边获取的信息、数据过来的,输入点大部分是常开常闭。 ? 将调用它的POU提供的数据值传入子程序:它→指子程序;POU→指主程序。也就是说主程序通过输入的方式传递给子程序 ?直接寻址:比如VW100 ?间接寻址:&VB100 变量类型(IN_OUT):可读可写的变量?,其初始值由调用它的POU传送给子程序,并用同一参数将子程序的执行结果返回给调用它的POU,因此常数和指针不能用于输入。 是以IN为主,所以位于程序块左边。 ?以程序为例: A): 上图中,启动I0.0、停止I0.1是可读→IN的变量 输出Q0.0是可读(自锁)可写(线圈)→IN _ OUT变量 输出1Q0.1在整个程序中只用了写的功能→OUT变量 B): 这是自加一指令,将VB0读出再写入VB0→也是IN_ OUT变量 C): A值、B值是输入,所以是IN; IN_OUT与TEMP区别: IN_OUT可读可写在外围会有一个管脚,从外围先把初始值写进运算; TEMP是内部运算以后存储数据的结果的暂存,不会有输出,调用完子程序数据就放弃了。 所以C值是TEMP,是暂存一次A+B的一个中间结果而已,没有任何需要从外围给数据进去,或者说运算完结果给出去。 D):如果把IN_OUT变量建成OUT变量会出现什么结果? 会执行程序出错。举例说明: 子程序: 将输出建成OUT变量 b、主程序 再调用一次主程序,因为带参数的子程序就是可以重复调用。只是说外围给不同的实参。 b、说明: 在主程序中,I0.0 I0.1 I0.2 I0.3就叫做实参。 按下启动I0.0,则Q0.0=1,这时Q0.1也会=1,因为从PLC执行的角度看,执行第一个主程序调用子程序输出=1,执行第二个主程序调用子程序时(在第一个执行主程序调用主程序时输出变量=1),没有更改输出结果---在子程序中LD0.0 LD0.2构成逻辑或运算,LD0.0与LD0.2或运算结果=1,再与停止LD0.1做与运算—从而输出结果=1。所以输出结果Q0.1也等于1。因此,输出变量应为IN_OUT变量 正确程序 子程序 主程序 输出在左边。IN_OUT是先读取再输出,输出Q0.0读的是Q0.0的值,输出Q0.1读的是Q0.1的值。 输出参数变类型(OUT):输出参数为可写的变量,用于将子程序的执行结果返回给调用它的POU,输出参数,必须在每次调用结束前给其一个确定的值。

文档评论(0)

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

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

1亿VIP精品文档

相关文档