PLC的这个调用按键精灵子程序和调用,且定义按键精灵子程序和调用里的一些变量,怎么弄出来的?

西门子S7_200系列PLC子程序中变量的使用_图文_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
西门子S7_200系列PLC子程序中变量的使用
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢西门子S7-200PLC局部变量详解
查看: 16883|
摘要: IN 调用POU提供的输入参数。OUT 返回调用POU的输出参数。IN_OUT 数值由调用POU提供的参数,由子程序修改,然后返回调用POU。TEMPORARY 临时保存在局部数据堆栈中的临时变量。一旦POU完全执行,临时变量数值则无法再 ...
&&&&&&&&&&&&&&&&&&&&&&&& IN&&&&&&&&&&&&&&&&&&&&&& 调用POU提供的输入参数。&&&&&&&&&&&&&&&&&&&&&&&&&OUT&&&&&&&&&&&&&&&&&& 返回调用POU的输出参数。&&&&&&&&&&&&&&&&&&&&&&&&&IN_OUT&&&&&&&&&&&&& 数值由调用POU提供的参数,由子程序修改,然后返回调用POU。&&&&&&&&&&&&&&&&&&&&&&&&TEMPORARY&&& 临时保存在局部数据堆栈中的临时变量。一旦POU完全执行,临时变量数值则无法再用。在两次P0U执行之间,临时变量不保持其数值。&&& 局部变量是分配给每个子程序的临时存贮区。&&& 当子程序被调用时,系统分配局部变量区给子程序;子程序执行完成后,该局部变量区被释放。释放时其中存贮的值也同时丢失,不能再下一扫描周期再被子程序使用。&&& 局部变量区的大小为64个字节,其中最后4个字节被系统所占用,实际可供子程序使用的为60个字节。&&& 由于局部变量区的数据不能带到上一扫描周期,因此只能用于存迪程序运算中的中间值,可以减少对全局变量区的占用。&&& 由于局部变量区在子程序被调用时才被分配,且分配时并不对数据区进行初始化,所以其初始值是不确定的。因此在程序中用到这些存贮区的值的指令前,必须有对该存贮区地址的赋值操作,否则可能会出现错误的执行结果。尤其在子程序中存在大量的跳转指令时,很容易出现漏掉对局部变量赋值的情况,要格外注意。&&&& 每个子程序调用的输入/输出参数的最大限制是16,如果您尝试下载的程序超过此一限制,IN和out加起来共16个超过16个就会出错,本人做一个程序的时候发现了这个问题,在这里提醒各位同行。&&& 1、子程序或者中断程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程序、中断程序或者其他子程序的局部存储器。同样的,中断程序也不能访问分配给主程序或子程序的局部存储器。&&&& 2、有关局部变量:S7-200有64个字节的局部存储器,其中60个可以用作临时存储器或者给子程序传递参数。&&& 如果用梯形图或功能方块图编程,STEP7--Micro/WIN保留这些局部存储器的最后四个字节。&&& 局部存储器和变量存储器很相似,但只有一处区别。变量存储器是全局有效的,而局部存储器只在局部有效。全局是指同一个存储器可以被任何程序存取(包括主程序、子程序和中断中断程序程序)。局部是指存储器区和特定的程序相关联。S7--200给主程序分配64个局部存储器;给每一级子程序嵌套分配64个字节局部存储器;同样给中断程序分配64个字节局部存储器。&&& 子程序或者中断程序不能访问分配给主程序的局部存储器。子程序不能访问分配给主程序、中断程序或者其他子程序的局部存储器。同样的,中断程序也不能访问分配给主程序或子程序的局部存储器。S7--200 根据需要分配局部存储器。也就是说,当主程序执行时,分配给子程序或中断程序的局部存储器是不存在的。当发生中断或者调用一个子程序时,需要分配局部存储器。新的局部存储器地址可能会覆盖另一个子程序或中断程序的局部存储器地址。&&& 局部存储器在分配时PLC不进行初始化,初值可能是任意的。当在子程序调用中传递参数时,在被调用子程序的局部存储器中,由CPU替换其被传递的参数的值。局部存储器在参数传递过程中不传递值,在分配时不被初始化,可能包含任意数值。&& 3、CPU226的项目中最多可以创建128个子程序,其他CUP可以创建64个子程序。子程序可以嵌套调用,即在子程序中调用别的子程序,一共可以嵌套8层。在中断程序中调用的子程序不能再调用别的子程序。不禁止递归调用(子程序调用自己),但是应慎重使用递归调用。&& 4、子程序中的定时器:停止调用子程序时,线圈在子程序内的位元件的ON/OFF状态保持不变。如果在停止调用时子程序中的定时器正在定时,100ms定时器将停止定时,当前值保持不变,重新调用时继续定时;但是1ms定时器和10ms定时器将继续定时,定时时间到时,它们的定时器位变为1状态,并且可以在子程序之外起作用。&&& 如何输入第一个局部变量赋值欲在局部变量表中赋值,请遵循以下步骤:&&& 1.&&& 确保正确的POU在程序编辑器窗口中显示,如有必要,点击所需的POU标记。(因为每个POU都有自己的局部变量表,您需要确保对正确的POU赋值。)&&& 2.&&& 如果局部变量表处于隐藏状态,下拉水平分裂条,显示局部变量表。&&& 3.&&& 为需要定义的变量选择具有正确说明类型的行,在"名称"域中为该变量键入一个名称。(如果您在OB1或中断例行程序中赋值,局部变量表只包含TEMP变量。如果您在子程序中赋值,局部变量表包含IN、IN_OUT、OUT和TEMP变量。)您不需要在局部变量表中的变量名前加井号。井号只用在程序代码中的局部变量前。&&& 注释:&& *& 局部变量名最多可包含23个字母数字字符和下划号,也可包含扩展字符(ASCII 128至 ASCII 255)。第一个字符只能是字母或扩展字符。将关键字用作符号名属于非法,名称的第一个字符是数字,或名称包含非字母数字字符或扩展字符集中的字符也属于非法。&& **& 局部变量表变量名被下载并存储于CPU内存中,使用较长的变量名可能减少用于存储程序的内存空间。&&& 4.&&& 在"数据类型"域中点击鼠标指针,并使用列表框为局部变量选择适当的数据类型。&&& 注释:&&& 当您将局部变量指定为子程序的参数时,您必须保证为局部变量指定的数据类型不与子程序调用中使用的操作数发生冲突。为"名称"和"数据类型"域提供数值后,程序编辑器会自动为局部变量指定L内存地址。如何在局部变量表中输入附加赋值&& 对于OB1和中断例行程序,局部变量表显示一组已被预先定义为TEMP变量的行。在OB1或中断例行程序中,只能使用这种说明类型。欲在表中增加更多行,只需点击最后一行中的一个单元格,然后使用ENTER键移过该行并向下移动,即自动生成一个新行。&& 对于子程序,局部变量表显示按照以下顺序预先定义说明类型的一组行:IN、IN_OUT、OUT和TEMP。您不能改变该顺序。局部变量在该表中的顺序必须符合当您为子程序调用指令进行操作数赋值时对应的操作数顺序。如果您希望增加附加局部变量,必须用鼠标右键点击现有行,并使用弹出菜单插入与点击行类型相同的另一局部变量。选择插入(Insert)& 行(Row),在所选行的上方插入新行,或选择插入(Insert)& 行下方(Below Row),在所选行下方插入新行。
上一篇:下一篇:
看过《西门子S7-200PLC局部变量详解》的人还看了以下文章:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:周热销排行
用户评论(0)
在此可输入您对该资料的评论~
添加成功至
资料评价:S7-200的子程序不能使用那些指令? -- 廖老师的博客 -- 工控网博客
我编写的教材《S7-200 SMART PLC编程及应用》(第二版)出版了,该书按S7-200 SMART的V2.0硬件和软件改写,有40多个实验的指导书。
16:20:15 | Author: 廖老师 ]
& & 网友Downhappy问:“S7-200的子程序中,有那些指令不可以采用? 我做了好多子程序,有些子程序反复调用没有任何问题,但是有一个子程序,在调用时,有每次每个循环里面第一个调用该子程序的命令起作用,而第二次调用则完全无效。 如果把这个子程序再重新复制一下,也是一个子程序,里面内容完全不一样,仅仅子程序号不同, 则两个调用都正常。是否是因为子程序中用到了EU命令?用到R或S应该没有问题吧。”& & S7-200 PLC 2009年系统手册中文版204页说:“当子程序在同一个周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器指令。”& & S7-300/400可以将定时器、计数器的编号设置为块的输入参数,在每次调用时指定不同编号的定时器和计数器作为实参。S7-200则没有这个功能,只能在子程序中使用固定的定时器编号。如果对多个被控对象多次调用子程序,不同被控对象同时使用同一个定时器计数器,将会产生灾难性的结果。& & 是否有上升沿和下降沿,必须经过两个扫描周期来判断,即前一个扫描周期读取触发信号,并存储到一个位地址内,再与本次扫描周期的触发信号的状态相比较。 
每次来都有新收获,虽然我有时候看不懂。不过还是特别佩服廖老师。
回复:S7-200的子程序不能使用那些指令?
16:30:32 | Author: saimir(游客) ]
您好,经过调试PLC和触摸屏已经能通讯了。昨天测试失败的原因是,我在触摸屏上的按钮设置成I0.0了,和PLC的硬件有冲突,所以昨天没成功。当把I0.0改成I2.0之后就好了。其实之前通讯是成功的,测试方法有问题。不过还是谢谢廖老师!!
回复:S7-200的子程序不能使用那些指令?
9:41:43 | Author: liaochangchu ]
以下引用saimir(游客)在 16:51:43的评论:您好!最近因为公司需要,重温PLC来开发产品,完全靠自学感觉好辛苦。有个问题想请教,我用S7-200 224xp CPU和unicon / HU070S的触摸屏连接的时候,触摸屏按钮按下去,程序感觉都好好的,CPU没有反映。 波特率设好了,触摸屏COM灯在闪说明电缆也没什么问题。是不是设置PLC为从站就好了呀?具体怎么设能教下么? 非常感谢!触摸屏的用户手册里应该有与PLC通信的设置方法。电缆是触摸屏厂家提供的吗?如果是自制的,需要注意接线。
回复:S7-200的子程序不能使用那些指令?
16:51:43 | Author: saimir(游客) ]
您好!最近因为公司需要,重温PLC来开发产品,完全靠自学感觉好辛苦。有个问题想请教,我用S7-200 224xp CPU和unicon / HU070S的触摸屏连接的时候,触摸屏按钮按下去,程序感觉都好好的,CPU没有反映。 波特率设好了,触摸屏COM灯在闪说明电缆也没什么问题。是不是设置PLC为从站就好了呀?具体怎么设能教下么? 非常感谢! 上传我的文档
 下载
 收藏
粉丝量:34
该文档贡献者很忙,什么也没留下。
 下载此文档
西门子PLC带参数调用子程序怎么实现的
下载积分:30
内容提示:西门子PLC带参数调用子程序怎么实现的
文档格式:PDF|
浏览次数:1024|
上传日期: 16:38:32|
文档星级:
全文阅读已结束,如果下载本文需要使用
 30 积分
下载此文档
该用户还上传了这些文档
西门子PLC带参数调用子程序怎么实现的
关注微信公众号

我要回帖

更多关于 子程序调用 的文章

 

随机推荐