加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线15267534595

SIEMENS河南省濮阳市西门子(授权)一级总代理-西门子变频器一级总代理

更新时间
2025-01-19 09:10:00
价格
请来电询价
变频器
西门子代理商
触摸屏
西门子一级代理
伺服电机
西门子一级总代理
联系电话
18126392341
联系手机
15267534595
联系人
梁涛
立即询价

详细介绍

今天跟大家通过一个编程示例来聊聊编程的思路,当然编程的思路或者说方法不是唯一的。

 

首先,功能要求:

1_副本

如下图所示:一个圆盘工作台,周围俊宇分布这个8个工位(0#~7#),每个工位安装有一个接近开关,用于检测位置信号,每个工位还有一个按钮,用于工位请求。在转盘上有个工件箱,工件箱下有个磁钢,当磁钢旋转到接近开关上方,接近开关动作

下面聊聊当拿到这个项目的思路,当看到这个功能要求,可以容易想到就是通过按钮控制电机正反转,但是不是这么简单,因为功能要求中是沿Zui近路径,所以,就要判断工件箱当前位置与请求按钮之间差几个工位。

 

也就是说要用记录工件箱当前位置和按钮请求的位置,两者做减法,来判断正转还是反转时Zui短路径。

 

通过上面的分析,我们做下面比较:分两种情况,结果为负和正。

 

为负的情况:

 

若减法的结果为-1,就意味着按钮的位置超前工件箱当前位置一个工位,所以电机反转一个工位。

 

若减法的结果为-2,就意味着按钮的位置超前工件箱当前位置2个工位,所以电机反转2个工位。

 

若减法的结果为-3,就意味着按钮的位置超前工件箱当前位置3个工位,所以电机反转3个工位。

 

若减法的结果为-4,就意味着按钮的位置超前工件箱当前位置4个工位,所以电机反转4个工位。

 

若减法的结果为0,电机停止。

 

若减法的结果为-5,就意味着按钮的位置超前工件箱当前位置5个工位,所以电机正转3个工位。

 

若减法的结果为-6,就意味着按钮的位置超前工件箱当前位置6个工位,所以电机正转2个工位。

 

若减法的结果为-7,就意味着按钮的位置超前工件箱当前位置7个工位,所以电机正转1个工位。

 

为正的情况:

 

若减法的结果为1,就意味着按钮的位置滞后工件箱当前位置一个工位,所以电机正转一个工位。

 

若减法的结果为2,就意味着按钮的位置滞后工件箱当前位置2个工位,所以电机正转2个工位。

 

若减法的结果为3,就意味着按钮的位置滞后工件箱当前位置3个工位,所以电机正转3个工位。

 

若减法的结果为4,就意味着按钮的位置滞后工件箱当前位置4个工位,所以电机正转4个工位。

 

若减法的结果为5,就意味着按钮的位置滞后工件箱当前位置5个工位,所以电机反转3个工位。

 

若减法的结果为6,就意味着按钮的位置滞后工件箱当前位置6个工位,所以电机反转2个工位。

 

若减法的结果为7,就意味着按钮的位置滞后工件箱当前位置7个工位,所以电机反转1个工位。

 

这样整个过程就分析清了,下面用什么指令来完成功能要求了。

 

通过上面的分析,我们要求工件箱当前位置和按钮位置要进行记录,并形成位号,编码指令就可以实现,所以,我们就用编码指令来实现。(有朋友不知道编码指令怎么用?或者说很多指令不知道怎么用,其实可以直接看软件的帮助文档。)
2_副本

大家自己看下编码指令,这里就不赘述了。

 

下面就是按照上面的思路的编程结果:

 

接口变量:
3_副本

程序如下:
4_副本

源代码如下:
 

#按钮编码 := ENCO(#按钮);

 

#位置编码 := ENCO(#位置);

 

IF #按钮<>0 AND (#位置编码 - #按钮编码) < 0 THEN

 

IF (#位置编码 - #按钮编码) <= -5 AND NOT #反转 THEN

 

#正转 := 1;

 

ELSIF (#位置编码 - #按钮编码) >= -4 AND NOT #正转 THEN

 

#反转 := 1;

 

ELSIF (#位置编码 - #按钮编码) = 0 THEN

 

#反转 := 0;

 

#正转 := 0;

 

END_IF;

 

ELSIF #按钮<>0 AND (#位置编码 - #按钮编码) > 0 THEN

 

IF (#位置编码 - #按钮编码) >= 3 AND NOT #正转 THEN

 

#反转 := 1;

 

ELSIF (#位置编码 - #按钮编码) <=4 AND NOT #反转 THEN

 

#正转 := 1;

 

ELSIF (#位置编码 - #按钮编码) = 0 THEN

 

#反转 := 0;

 

#正转 := 0;

 

END_IF;

 

ELSE

 

#反转 := 0;

 

#正转 := 0;

 

END_IF;


相关产品

联系方式

  • 电  话:18126392341
  • 联系人:梁涛
  • 手  机:15267534595
  • 微  信:15267534595