水电电工知识
西门子S7-200PLC带参数调用的子程序运行为什么异常?
2024-09-15  浏览:25
西门子S7-200PLC两个子程序的局部变量和程序完全相同(见下面的右图),运行时发现I0.0为1时Q0.0和Q1.0同时变为1。将置位指令改为对L0.1的赋值(线圈)指令后运行正常,将OUT参数“输出”改为IN_OUT参数运行也正常。为什么?
1.出错的原因
S线圈(置位指令)断开时,L0.1的值保持不变。
从子程序的局部变量表可以看出,输入参数IN和输出参数OUT均用L区的局部变量保存。这两个子程序属于同一级,它们的局部变量使用同一片物理存储区。换句话说,两个子程序的L0.1先后使用同一个物理存储器位。
OB1中的I0.0为1时, 子程序SBR_0中的L0.1和它的实参Q0.0被置位。在执行SBR_1时,因为两个子程序的L0.1先后使用同一个物理存储器位,SBR_1的L0.1仍然为1,使它的实参Q1.0也变为1。Q1.0变为1不是因为程序的作用,而是两个子程序的L0.1共用同一个物理存储器位引起的。
2.将OUT参数改为IN_OUT参数未出错的原因
在Q1.0为0,I0.0为1时,L0.1因为是IN_OUT参数,刚开始执行SBR_1时,L0.1的输入值为0,与SBR_0执行后L0.1的值无关。因为I1.0为0,SBR_1执行完后,L0.1的值不变,仍然为0。所以Q1.0的值为0,不会变为1。
3.置位指令改为赋值指令(线圈)未出错的原因
假设I0.0为1时,I1.0为0,执行SBR_1的程序时,L0.0的触点断开,使L0.1的线圈断电,所以Q1.0为0。
4.同样的程序为什么S7-300不会出错
S7-300的功能(FC)和S7-200的子程序差不多,S7-300的FC1和FC2中同样的置位程序运行时不会出错。这是因为S7-300和S7-200保存IN、OUT参数的方法不一样。S7-300同一级的FC的临时局部变量(TEMP)使用同一片物理存储区,它们的IN、OUT参数没有标出L区的地址,与临时变量的保存方法不同。因此同样的程序S7-300不会出错。
更多»您可能感兴趣的文章:
更多»有关 电工 电工知识 的产品:
广州防静电工作台

广州防静电工作台

价格:1000.00/张

广州厂家专业焊接生产工作台,防静电工作台

广州厂家专业焊接生产工作台,防静电工作台

价格:600.00/张

广州厂家直销工作台,防静电工作台,流水线工作台,不锈钢工作台

广州厂家直销工作台,防静电工作台,流水线工作台,不锈钢工作台

价格:500.00/张

广州防静电工作台

广州防静电工作台

价格:350.00/张

联塑PVC电工管、电线槽

联塑PVC电工管、电线槽

价格:2.00/米

低价出售发动机故障诊断仪

低价出售发动机故障诊断仪

价格:到店咨询

低价出售发动机故障诊断仪

低价出售发动机故障诊断仪

价格:到店咨询

碳平衡油耗仪厂家直销

碳平衡油耗仪厂家直销

价格:到店咨询

供应逆反射标志测试仪质量好

供应逆反射标志测试仪质量好

价格:到店咨询

浙江砂尘试验机品牌厂家→林频仪器

浙江砂尘试验机品牌厂家→林频仪器

价格:66.00/台

紫外线老化试验箱雅士林官方网站

紫外线老化试验箱雅士林官方网站

价格:到店咨询

北京高低温试验箱厂_性价比最好的是谁

北京高低温试验箱厂_性价比最好的是谁

价格:到店咨询

  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 陶瓷之家 照明之家 防水之家 防盗之家 博一建材 卫浴之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BO-YI.COM SYSTEM All Rights Reserved