毕节西门子电机中国总代理商
专业销售西门子S7-200/300/400/1200/1500PLC,ET200分布式I/O:ET200S、ET200M、ET200SP、ET200PRO、3RW系列软启动器(3RW30/3RW40/3RW44/3RW31)、3RK系列电机启动器、数控系统、变频器(MM420/MM430/MM440/S110/S120/G120/G120C/V10/V20/V60/V80/V90/G130/G150)、人机界面、触摸屏、伺服、电机、西门子通讯电缆、现场总线、DP接头、工控机,西门子低压电器,仪器仪表等,并可提供西门子维修服务,欢迎来电垂询。
作为****的工业自动化和数字化解决方案提供商,西门子PLC控制器在工业自动化领域具有广泛的应用。作为西门子PLC控制器的全国代理商,我们引入了西门子PLC模块总代理,提供*新的西门子PLC控制器和西门子PLC模块,我们致力于为客户提供*优质的西门子PLC控制器产品,同时也提供各种控制面板和自动化系统的设计、开发和集成服务,帮助客户提高生产效率和管理效益。
在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。根据局部变量的特点,子程序第一次调用完成后,局部变量存储区释放。毕节西门子电机中国总代理商
- 铜仁西门子电机中国总代理商 2024-11-22
- 安顺西门子电机中国总代理商 2024-11-22
- 遵义西门子电机中国总代理商 2024-11-22
- 六盘水西门子电机中国总代理商 2024-11-22
- 贵阳西门子电机中国总代理商 2024-11-22
- 西门子授权中国区经销商 2024-11-22
- 中国地区西门子授权经销商 2024-11-22
- 贵州西门子电机中国总代理商 2024-11-22
- 眉山西门子电机中国总代理商 2024-11-22
- 达州西门子电机中国总代理商 2024-11-22
- 广安西门子电机中国总代理商 2024-11-22
- 宜宾西门子电机中国总代理商 2024-11-22
- 南充西门子电机中国总代理商 2024-11-22
- 乐山西门子电机中国总代理商 2024-11-22
- 内江西门子电机中国总代理商 2024-11-22
联系方式
- 电 话:18717946324
- 联系人:占雪芬
- 手 机:18717946324
- 微 信:18717946324