岳阳西门子PLC代理商
边界条件
基于适配的工作原理,基础适配算法只有在具有机械共振频率的系统中才能可靠运作。对于有多个机械共振频率的系统,共振之间可能会出现经过适配的滤波器的意外运动。
基于适配的工作原理,在禁用频率的适配中可能出现不性。这通常发生在使用分辨率较差的编码器(例如旋转变压器)的情形下。在此类情形下,系统仅会部分抑制共振频率。
解决办法:为了减小不性,可增大参数p1441 中的转速实际值平滑时间常数。
转速或速度设定值的跃变可能会导致适配电流设定值滤波器的意外运动。
若系统除变化的机械共振频率外还包含不变的机械共振频率,则须通过固定的电流设定值滤波器抑制不变的频率。此时经过适配的带阻滤波器应为带阻滤波器级联中后的滤波器。否则适配可能会受不变的共振频率阻碍,该频率会导致禁用频率的意外运动。
示例:电流设定值滤波器 5 作为级联中后使用的滤波器
内部激活阈值
通过参数 p5284 可以权衡内部激活阈值:
如果适配过于灵敏地响应其它故障(如转速跃变或负载转矩跃变),则应增大激活阈值。
如果适配响应不灵敏且在强励磁的情况下仍找不到共振频率,则可以减小激活阈值。
经过适配的滤波器的运动范围
借助参数 p5282 或 p5283 可以限制经过适配的滤波器的运动范围。
适配起始值
脉冲使能时适配开始所采用的频率始终为滤波器的当前禁用频率。该频率可通过参数 r5285及滤波器的频率参数读取。禁用脉冲并重新使能脉冲后,该初始值始终为禁用脉冲前后一次测定的禁用频率。关闭并重启驱动后,适配将采用保存于经适配的滤波器的频率参数中频率起动。
如需为适配频率确定适宜的初始值,可使用以下方法:
将共振频率的当前位置用作起始值:
或者
为此,从频率特性测量中读取当前共振频率。
完整运行一次一键优化来确定当前共振频率。
使用起始值 500 Hz。
该起始值既可低于也可高于查找出的共振频率。应在激活适配和发出脉冲使能前将该值设置为对应带阻滤波器的禁用频
1.ATT填表指令:向表格(TBL)中加入字值(DATA)。表格中的个数值是表格的大长度(TL)。第二个数值是表格的实际条目数。每次向表格中增加新数据后,条目计数加1。新数据被增加至表格中的后一个条目之后,即无法再向表格中添加数据,报溢出。表格多可包含100个条目,不包括指定大条目数和实际条目数的参数。
2.FIFO先进先出指令:从表(TBL)中移走个数据,并将此数输出到DATA。剩余数据依次上移一个位置。每执行一条本指令,表中的数据数减1。
3.将这两个指令结合起来,先通过数据建表,当表格满了之后,再移出老的数据,填入新数据。如下图所示:
S7-300/400plc程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。结合起来就能实现一个复杂的控制系统。就像语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。 在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。 FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能 FB运行时需要调用各种参数,于是就产生了背景数据块DB。例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。FB具有储存功能 系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只SFB和SFC是集成在S7CPU中的功能块,用户能直接调用不需自已写程序。 SFC与FC不具有储存功能,FB和SFB具有储存功能。 OB模块相当于子程序,负责调用其他模块。如果程序简单只需要OB就可以实现。 用西门子plc编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗? FB--功能块,带背景数据块 FC--功能,相当于函数 他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块 举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。 FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的大区别是,FB与DB配合使用,DB中保存着FB使用的数据,FB退出后也会一直保留。FC就没有一个的数据块来存放数据,只在运行期间会被分配一个临时的数据区。 在实际编程中,是使用FB还是FC,要看实际的需要决定。 FB与FC没有太大的差别,FB带有背景数据块,而FC没有。FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。 FC和FB像C中的函数,只FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。 这是一般的理解;FB需要背景数据块,而FC是没有的;参数的传递方式不同,FB的输入输出对应着背景数据块地址,而FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FB参数传递的是数据,FC参数传递的是数据的地址。 FB(功能块)的处理方式是围绕着数据块处理数据,他的入口参数和出口参数都是数据块里的数据,以及STAT的数据都是数据块里,入口参数和出口参数、STAT可以认为是静态数据,这些数据不会因为函数消失而逝去,他会一直保存在数据块里。FB里的变量与他的背景数据块是一一对应的,而他的对应并不是一层不变的。更确切的说,FB里的变量在调用时将根据AR2的值当作偏移量与背景数据块是一一对应。如果一个FB功能块里没有入口参数、出口参数及STAT数据,他将不需要背景数据块,这时的FB和没有入口出口参数的FC就没有什么区别了,就只能使用临时变量和全局变量了。用很多人认为,FB的背景数据块必须由FB生成、FB里的个变量对应着背景数据块的个变量,还有就是由FB生成的数据块只能作为FB的背景数据块使用。其实这些理解是错误的,FB的背景数据块不一定是通过FB生成的,可以像生成共享数据块一样生成FB的背景数据块,普通的数据块也可以作为FB的背景数据块,这种做法是有一定前提的,就是这个数据块的字节数必须大于等于FB所需的字节数,如果小于FB所需的字节数时,FB访问到超出背景数据块的变量时就会找不到变量的地址,肯定会出错了。FB里的个变量对应可以对应数据块字节数减去FB所需背景数据块字节数里的任意位置的变量,我觉得这个比较好理解,在多重背景里不就是这样吗 |