6ES7322-1BP00-0AA0

6ES7322-1BP00-0AA0

发布商家
浔之漫智控技术-西门子PLC代理商
联系人
聂航(先生)
电话
15221406036
手机
15221406036
微信
15221406036

6ES7322-1BP00-0AA0

步进电机失步应该就是漏掉了脉冲没有运动到的位置。而过冲应该就是和失步相反,运动到超过了的位置。
  而造成步进电机失步的主要原因山社电机认为有以下四点:
  1、高速运转中电压不稳,使输入电流有时达不到额定电流,而造成输出扭矩下降,终导至失步。
  2、转速设置过高,力矩不够。
  3、外部阻力过大。
  4、速度上升或下降过快,而造成失步。
  在一些控制简单或要求低成本的运动控制系统中,常会用步进电机。大的优势是:以开环的方式来控制位置和速度。但正因为是开环控制,负载位置对控制回路没有反馈,步进电机就必须正确响应每次励磁变化。如果励磁频率选择不当,步进电机就不能够移动到新的位置。负载实际的位置相对于控制器所期待的位置出现误差,即发生失步现象或过冲想象。
  因此,在步进电机开环控制系统中,如何防止失步和过冲是开环控制系统能否正常运行的关键。
  为了克服步进失步和过冲现象,应该在启动停止时加入适当的加减速控制。我们一般采用:运动控制卡作上位控制单元、具有控制功能的plc作上位控制单元、单片机作上位控制单元来控制运动加减速可以克服失步过冲现象。
  失步和过冲现象分别出现在步进电机启动和停止的时候。一般情况下,系统的极限启动频率比较低,而要求的运行速度往往比较高。如果系统以要求的运行速度直接启动,因为该速度已经超限,启动频率而不能正常启动,起则发生丢步,重则根本不能启动,产生堵转。系统运行起来后,如果达到终点时立即停止发送脉冲,令其立即停止,则由于系统惯性的作用,步进电机会转过控制器所希望的平衡位置。

6ES7314-6EH04-0AB0安装调试

1.引言
  CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们可以将二进制逻辑操作状态位信号状态直接集成到程序中,以控制程序执行的流程。
  2.状态字寄存器
  先简单介绍一下CPU中状态字。
  ●检查位:状态字的0位称作检查位,如果/FC位的信号状态为“0",则表示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。FC前面的斜杠表示对FC取反。
  ●逻辑运算结果:状态字的第1位为RLO位(RLO=“逻辑运算结果"),在二进制逻辑运算中用作暂时存储位。比如,一串逻辑指令中的某个指令检查触点的信号状态,并根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算结果又存在RLO位中。
  ●状态位:状态位(第2位)用以保存被寻址位的值。状态位总是向扫描指令(A,AN,O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写指令执行后的该寻址位的状态)。
  ●OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到OR这一状态位。OR位表示先前执行的与逻辑操作产生的值为“1",于是,逻辑操作或的执行结果就已被确定为“1"。
  ●OV位:溢出表示算术或比较指令执行时出现了错误。根据所执行的算术或逻辑指令结果对该位进行设置。
  ●OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。这样,即使是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。OS位只有通过如下这些命令进行复位:JOS(若OS=1,则跳转)命令,块调用和块结束命令。
  ●CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:
  •算术指令结果
  •比较指令结果
  •字逻辑指令
  •在移位功能中,移出位相关信息。
  可以用以下指令来检查条件代码CC1和CC0。
  CC1CC0检查完成后,如果:
  00A==0结果=0
  10A>0结果>0
  01A<0结果<0
  ●BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操
  作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在梯形图的方块指令中,BR位与ENO位有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO位也为0;如果功能被正确执行,BR位为1,
  ENO位也为1。在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。
  状态字的9-15位未使用。
  3.具体使用
  下面我们结合STEP7中的指针编程来具体介绍条件码CC0/CC0的用法。
  不同的指令在CPU中执行时间是不同的。浮点数比定点数执行时间要长;字逻辑指令比位逻辑指令执行时间要长;在某些程序中适当使用状态字来进行编程可以减少CPU程序的执行时间。
  例1:比如说要比较一个DB中块的DBBO-DBB99这100个字节是正数是负数还是0,正数用1来表示;负数用-1来表示;0用0来表示。并且将对应结果存入MB200开始的100个字节中。我们通常的做法可能为:
  



  如果利用条件码来进行编程,既可以减少程序的大小还会减少一定的指令执行时间,我们只需要将
  中间的比较程序加以优化,即可以达到目的。
  
  例2:根据状态位C0和CC1的状态而跳转的跳转功能指令JZ不改变任何状态位的状态,而且逻辑操作结果RLO值也会“随着"该跳转功能带到跳转程序段中,供用户程序其它逻辑操作之用(不改变/FC状态)。
  示例两个整数相减并需进行连续判断:
  LMW2
  LMW8
  -I
  JZZERO//如果结果等于“0",则跳转至标号ZERO处
  //结果不等于“0"时所执行的指令
  ZERO://结果等于“0"时,所要执行的指令
  如果用户不熟悉JZ指令和状态位C0和CC1的具体含义,编程时就需要通过比较指令将比较结果存入一个二进制位中,再根据这个二进制位通过JC/JCN指令来控制程序的执行了。
  例3:我们实际应用中可能要利用某些协议转换网关(比如说Hilscher公司的NTTAP系列网关)来和某些串口协议的仪表进行通信时,会遇到CRC校验的问题,关于CRC校验时需要判断溢出位是否为1的问题来进行程序的进一步计算。我们以EURO2408的MODBUS通信时需要的CRC校验为例说明CRC校验的步骤:
  1、装载16#FFFF到一个16位CRC寄存器;
  2、将CRC寄存器的高8位字节与信息中的个8位字节相异或,结果返回到CRC寄存器中;
  3、将CRC寄存器数据向右移动一位;
  4、如果溢出的位等于1,则将CRC寄存器与16#A001相异或,结果返回到CRC寄存器中;
  4、如果溢出的位等于0,则重复第3步;
  5、重复第3、4步骤,直到已经移位了8次;
  6、将CRC寄存器的高8位字节与信息中的下一个8位字节相异或,结果返回到CRC寄存器中;
  7、重复第3步到第6步,直到信息中所有字节都与CRC寄存器相异或,并都移位了8次;
  8、后的CRC寄存器中的结果即为CRC校验码,后被添加到信息(数据)的末尾(交换!低8位
  在前,高8位在后;)
  在第4步中需要判断溢出的位是否为1,如何判断对于整个程序有着重要的影响。我们可以用A>0指令来判断这个条件,具体代码的编写,有兴趣时大家可以根据上面的步骤编写一个自己的CRC程序。
  4.结束语
  在一般情况下,我们不必考虑这些状态位,但在某些情况下,利用这些状态位并结合一定的指令,可以给我们的编程带来更大的灵活性,同时对于进一步提高自己的编程水平也有一定的作用

1、指令分为单扫描周期指令和多扫描周期指令。对于多扫描周期指令,如果EN或者REQ只使能一个扫描周期,该指令不能成功执行;例如大多数的通信指令;
2、FB块的输入输出形参存储于背景数据块中,在调用该FB时实参可选;而FC块的输入输出是临时内存,必须指定实参才能运行;
3、FB块的输入输出虽不是静态变量,但亦有保持功能,具体视程序而定;
4、注意变量被多次赋值时的先后顺序!因为变量的值总会被后执行动作更新,前面的值将被覆盖;例如下图:


程序初衷为当接受响应完成时ERR置位,或响应超时ERR置位。上述程序是可以完成正常功能的;但若二者互换,如下图


接收超时时,ERR不会置位,因为rev_done为0,ERR被复位!
5、STEP 7中的梯形图操作数、能流的监控特征色(蓝绿)、以及监控表中的布尔变量的刷新频率有限,可能不能反映真实的实时运行状况,可借助一个累加器来监视程序的运行状态;例如下图:


6、单个扫描周期中,一个布尔变量的上升/下降沿只能读取一次;因为读取一次之后,其Pre变量已被立即刷新,后续的读取不能成功读到该变量的状态变化;
7、数组访问越界将导致CPU错误,ERR灯闪烁;
8、单扫描周期指令的循环操作是在单扫描周期完成的;
9、多使用宏定义,可使程序易读、方便修改;
10、关于能流:(1)能流流经某个具备EN和ENO的指令,并不一定代表该指令功能执行完成,只代表该扫描周期扫描完成;(2)算数运算、bool变量操作等单扫描周期指令的ENO输出代表该指令执行完成。
11、FB/FC的EN端将为能流提供扫描通道,EN端断路,能流无扫描通路,内部变量将不再刷新,即该函数不再执行;当FB/FC的EN端总是使能,Enable输入断开,块内部仍有能流通路,相应变量会被扫描以致刷新;请注意二者区别;例见下图:


前者FB12内部的变量总会被扫描,而后者在M3.0或DB_Valve.done为1时,内部变量不会被扫描;相应的,前者done变量将被下一扫描周期置0,而后者done置1后将因能流不通不能扫描而自行保持


人气
18
发布时间
2023-07-02 21:00
所属行业
PLC
编号
40027504
我公司的其他供应信息
相关6es7322产品
拨打电话
微信咨询
请卖家联系我