吕梁西门子PLC代理商

2024-05-08 07:10 114.95.101.251 1次
发布企业
浔之漫智控技术-西门子PLC代理商商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
2
主体名称:
浔之漫智控技术(上海)有限公司
组织机构代码:
91310117MA1J3R698D
报价
人民币¥666.00元每件
品牌
西门子
产品规格
模块式
产地
德国
关键词
西门子代理商,西门子PLC代理商,西门子中国代理商。西门子授权代理商,西门子一级代理商
所在地
上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
手机
15221406036
经理
聂航  请说明来自顺企网,优惠更多
请卖家联系我
15221406036

产品详细介绍

吕梁西门子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。根据局部变量的特点,子程序次调用完成后,局部变量存储区释放。

图.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变量也许可以解决许多问题

1.编程指令
在西门子S7-200与S7-300/400中可以使用的字节、字、双字逻辑操作指令比较可以参见表。

    2.编程基本注意点
   字节、字、双字逻辑操作指令以字节、字、双字为单位,逐位进行规定逻辑运算的指令。逻辑运算可以是“与”、“或”、“异或”等,但在指令格式与逻辑运算范围、指令处理过程上,S7-200与S7-300/400有所区别,在编程时应引起注意,具体如下:
    (1)指令格式与逻辑运算范围
    ①字节、字、双字逻辑操作指令在S7-200中的使用格式如下:

S7-200允许的逻辑运算操作如下:
INV:“取反”;
WAND:“与”;
WOR:“或”;
WXOR:“异或”。
S7-200允许的操作数长度如下:
B:字节;
W:字;
D:双字。

②S7-300/400的使用格式如下:
  S7-300/400允许的逻辑运算操作如下:
  WAND:“与”;
+WOR:“或”;
    WXOR:“异或”。
    S7-300/400允许的操作数长度如下:
    W:字:
    DW:双字。
    (2)指令的处理过程
   字节、字、双字逻辑操作指令在S7-200与S7-300/400中的梯形图程序基本相同,但实际处理过程与指令表程序不同。
   字节、字、双字逻辑操作指令在S7-200中的处理过程如下(以“字或”为例):
    ①将操作数l(INl)直接移动到结果存储器中;
    ②将结果存储器与操作数2 (IN2)的内容进行规定的逻辑运算:
    ③将逻辑运算的结果保存在结果存储器中。
    以上处理所对应的梯形图程序与指令表程序如图10-2.1所示。

   字、双字逻辑操作指令在S7-300/400中的处理过程如下(同样以“字或”为例):
    ①将操作数1(INl)移动到累加器1中;
    ②将操作数2(IN2)移动到累加器1中,原累加器1中的内容(操作数1)移动到累加器2中;
   ③累加器1与累加器2的内容进行规定的逻辑运算,逻辑运算的结果保存在累加器l中;
    ④将累加器l的内容(逻辑运算的结果)传送到结果存储器中。
    以上处理所对应的梯形图程序与指令表程序如图10-2.2所示。

所属分类:中国电工电气网 / PLC
关于浔之漫智控技术-西门子PLC代理商商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2019年09月10日
法定代表人袁宜男
注册资本500
主营产品西门子PLC模块,变频器,触摸屏,交换机
经营范围从事智能科技、自动化科技、机电领域内的技术开发、技术转让、技术咨询、技术服务,工业自动化设备安装,工业自动化控制设备、电气设备、机申设备、电子产品、五金产品、金属材料、仪器仪表、橡塑制品销售,商务信息咨询,软件开发,建筑装修装饰建设工程专业施工,建筑安装工程(除特种设备),机械设备租赁(不得从事金融租赁),物业管理。工业自动化设备加工、销售。
公司简介本公司销售的一律为原装正品,假一罚十,可签正规的产品购销合同,可开增值税发票,税点另外算,24小时销售热线:15221406036本公司销售的一律为原装正品假一罚十可签正规的产品购销合同可开增值税发票税点另外算24小时销售热线15221406036西门子触摸屏代理商,西门子一级代理商,西门子中国授权总代理----浔之漫智控技术(上海)有限公司本公司专业经销合信/CO-TRUST科思创西门子PLC; ...
公司新闻
我们的其他产品
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112