西门子变频器6SL32110AB137UA1,西门子变频器6SL32110AB137UA1
{心中有空间,梦想就有可能}
{西门子与客户携手,让关键所在,逐一实现}
联 系 人: 黄勇《黄工》 24小时联系手机: 13701633515
直线销售 电 话: 021-31660605 在 线 商 务 QQ: 77956468
单位:台 产品单价:电议
供货数量:不限 最小定量:1
包装说明:齐全 产品规格:全新原装
在S7-200编程中,子程序想必大家都用过,使用子程序可以更好地组织程序结构,便于阅读和调试,也可以缩短程序代码。但是使用子程序也有一些需要注意的地方,除了子程序在同一周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器之外,还有子程序中局部变量的特点,在编程多次调用带参数子程序时要特别注意。下面就是前些天热线上遇到的一个Case,非常有代表性,在这里跟大家分享。
E:您好,西门子技术支持。
C:您好,我想问下,200子程序是不是多次调用时会不好使?
E:不会啊,您是不是在子程序里使用了沿指令或者定时器?
C:没有啊,我就编了一句很简单的开关程序,开关闭合,线圈导通,然后主程序里调用了两次这个子程序,结果第一个I点闭合了,两个Q点都导通了。
E:(心里活动:看来是和子程序的局部变量有关了,估计客户程序逻辑有问题)那请您描述一下您的子程序吧,我帮您看看。
于是客户描述了一下自己的程序,大致了解了之后告知客户我这边测试下,稍后回复。
客户的程序是这样的:
子程序:是个常见的自保持逻辑,接口参数如红框所示。
图. 01
主程序:调用了两次上面的子程序,实现I0.0和I0.1控制Q0.0的闭合和断开,I0.2和I0.3控制Q0.1的闭合和断开。
图. 02
那么在线测试下程序执行情况,发现果然如客户所描述的,I0.0为1后,Q0.0和Q0.1都为1了。见下图.03所示。而如果闭合I0.2,则Q0.0和Q0.1都断开。
图. 03
为什么会这样呢?首先我们先明确子程序局部变量的特点。局部变量的变量类型分为四种:IN,IN_OUT,OUT和TEMP,局部变量存储区是在子程序调用时开辟的,子程序调用完成,局部变量占用的存储空间释放。
我们来分析下客户的子程序。
在主程序第一次调用子程序时,如果I0.0为1,I0.1为0,它们将自身值分别传给输入局部变量#AA和#BB,子程序中程序逻辑执行如下图.04所示。此时局部变量#CC值为1,子程序完成,#CC将值传送到输出参数Q0.0上,使其置1。根据局部变量的特点,子程序第一次调用完成后,局部变量存储区释放。
图.04
那么当主程序第二次调用该子程序时,开辟临时存储空间,但是此时的存储空间与第一次调用时开辟的不一定一致。可是,也有可能由于程序简单,仍然使用第一次调用时占用的存储空间。如果这种情况发生了,那么第一次调用时已经将#CC的L0.2置了1,而此值依旧存在,那么第二次调用时虽然输入参数I0.2和I0.3为0 ,但是#CC(L0.2)为1,由于客户的子程序逻辑有自保持部分,所以最后L0.2的逻辑结果仍然是1。子程序完成后,#CC将值传送到输出参数Q0.1上,使其置1。所以就会出现客户反映的那种问题。
那么该如何避免这种情况呢?
大家是否还记得刚刚介绍局部变量参数类型时除了IN, OUT类型外,还有一种类型叫IN_OUT,这种类型的参数是先读入,然后再写出,这里我们就可以利用它的特点解决上面的问题。
下面对子程序的参数进行修改,将原先的#CC变量类型改为IN_OUT。如下图所示:
图.05
主程序结构不变,如下所示,可以看到由于#CC的类型是IN-OUT,它在子程序块的接口位置也转到了左侧输入侧。
图.06
下面再次将I0.0置1,其他输入都为0,监控程序状态,如图.07所示,可以看到只有Q0.0为1,Q0.1状态为0。而如果将I0.1置1, Q0.0被复位,Q0.1还是0,这样就符合客户的控制要求了。
图.07
同样,如果只给I0.2置1,那么也只有Q0.1会亮,不会再影响Q0.0。
了解了IN_OUT类型变量的特点,就不难分析以上的结果。因为每次调用子程序时,局部变量#CC都会先去读取输入参数Q0.0或Q0.1的状态,所以即使两次调用子程序时,#CC变量使用的同一区域,该区域的值也会在开始被Q点的状态所修改,就不存在两次调用相互影响的情况了。
另外,如果在子程序一开始就添加一条指令,对局部变量#CC进行赋初值(如图.08),也可以避免临时变量区数值不定的问题,您可以尝试测试下。
图.08
所以,在编写200子程序时要特别注意局部变量的特点,一旦出现多次调用不正常的情况,就可以从局部变量的特点出发分析,看看是不是存在隐患。善加利用IN_OUT变量也许可以解决许多问题。
设备 | TP177micro |
显示 | STN LCD |
·尺寸 | 5.7英寸 |
·分辨率(宽×高,象素) | 320×240(竖型为240×320) |
·颜色 | 蓝屏,4级灰度显示 |
·背景光的平均亮度寿命( 25℃) | 大约 50000小时 |
操作员控制 | 触摸屏幕 |
·可编程的功能键 | |
·系统键 | |
·数字输入 /字母输入 | 有 /有 |
存储 | Flash/RAM |
·用户数据可用内存 | 256KB |
接口 | 1×RS485 |
与控制器的连接 | S7-200 |
电源 | 24V DC(+18V~+30V DC) |
·额定电流 | 0.24A |
时钟 | 软件时钟 |
防护等级 | |
·前面板 | IP65, NEMA4, NEMA4x, NEMA12 |
·后面板 | IP20 |
认证 | FM, cULus, CE, C-Tick, EX Zone2/22 |
尺寸 | |
·前面板尺寸宽×高( mm) | 212×156 |
·安装开孔尺寸宽×高( mm) | 198×142 |
·安装深度 (mm) | 42 |
重量 | 0.7kg |
环境条件 | |
·安装角度 | |
-无外部通风的最大允许倾斜角 | ± 35° |
·温度 | |
-操作(垂直安装) | 0℃~+50℃ |
-操作(最大倾斜角度) | 0℃~+40℃ |
-运输和存储 | - 20℃~+60℃ |
·最大相对湿度 | 85% |
功能 | |
消息系统 | |
·消息的数目 | 500个 |
·消息长度(行数×字符数) | |
·每条消息的过程值数目 | 8个 |
·消息缓冲器 | 循环缓冲, 128个消息 |
过程画面 | 250个 |
·文本对象 | 500个文本元素 |
·每个画面的变量 /域 | 20/20 |
·图形对象 | 位图 ,图标,背景图画 |
·动态对象 | 柱形统计图表 |
-库 | 有 |
变量 | 250个 |
用户访问保护(密码保护) | 用户组专用权限 (多达32个权限) |
在线语言 | 5种 |
字符集 | 支持亚洲字符集 |
帮助系统 | 有 |
组态工具 | WinCC flexible |
·传送组态 | 串行 |
订货号 | |
TP 177 micro | 6AV6 640-0CA11-0AX0 |
WinCC flexible 2004 SP1亚洲标准版本 | 6AV6 612-0AA11-0AA0 |
设备 | TP177micro |
显示 | STN LCD |
·尺寸 | 5.7英寸 |
·分辨率(宽×高,象素) | 320×240(竖型为240×320) |
·颜色 | 蓝屏,4级灰度显示 |
·背景光的平均亮度寿命( 25℃) | 大约 50000小时 |
操作员控制 | 触摸屏幕 |
·可编程的功能键 | |
·系统键 | |
·数字输入 /字母输入 | 有 /有 |
存储 | Flash/RAM |
·用户数据可用内存 | 256KB |
接口 | 1×RS485 |
与控制器的连接 | S7-200 |
电源 | 24V DC(+18V~+30V DC) |
·额定电流 | 0.24A |
时钟 | 软件时钟 |
防护等级 | |
·前面板 | IP65, NEMA4, NEMA4x, NEMA12 |
·后面板 | IP20 |
认证 | FM, cULus, CE, C-Tick, EX Zone2/22 |
尺寸 | |
·前面板尺寸宽×高( mm) | 212×156 |
·安装开孔尺寸宽×高( mm) | 198×142 |
·安装深度 (mm) | 42 |
重量 | 0.7kg |
环境条件 | |
·安装角度 | |
-无外部通风的最大允许倾斜角 | ± 35° |
·温度 | |
-操作(垂直安装) | 0℃~+50℃ |
-操作(最大倾斜角度) | 0℃~+40℃ |
-运输和存储 | - 20℃~+60℃ |
·最大相对湿度 | 85% |
功能 | |
消息系统 | |
·消息的数目 | 500个 |
·消息长度(行数×字符数) | |
·每条消息的过程值数目 | 8个 |
·消息缓冲器 | 循环缓冲, 128个消息 |
过程画面 | 250个 |
·文本对象 | 500个文本元素 |
·每个画面的变量 /域 | 20/20 |
·图形对象 | 位图 ,图标,背景图画 |
·动态对象 | 柱形统计图表 |
-库 | 有 |
变量 | 250个 |
用户访问保护(密码保护) | 用户组专用权限 (多达32个权限) |
在线语言 | 5种 |
字符集 | 支持亚洲字符集 |
帮助系统 | 有 |
组态工具 | WinCC flexible |
·传送组态 | 串行 |
订货号 | |
TP 177 micro | 6AV6 640-0CA11-0AX0 |
WinCC flexible 2004 SP1亚洲标准版本 | 6AV6 612-0AA11-0AA0 |