前言
相信很多初次使用施耐德变频器的同行都会与使用西门子变频器一样给控制相应的位赋值或者给固定的控制字发送给变频,可变频器并不会予以理会,变频的数码管面板依然会显示 “- - 0 6”。当然我也不例外,此处省略一万字的心路历程!
出现这种问题怎么办?只能咨询施耐德在线客服咯,咨询完后,施耐德的工程师发给我一张名为流程图的PDF,如下图所示:
编程思路
流程图中的都是描述性语言,还是需要给它转换成编程语言,在加上一点点的逻辑修饰,方可完成***的功能块制作。
将变频的状态字同16#007F(MSK)进行与运算得到2-6的五种状态(ETA)。将变频状态与16#000F(MSK) 进行与运算再判断运算结果是否等于16#0008,等于则故障,不等于则正常可以进行后续逻辑控制。
解析流程图可发现故障状态和快停状态都是独立出来的,在很多种状态下都可以被触发出现此两种状态。其中故障状态的优先级又是***高的,所以我们可以写两层IF语句嵌套,外层是判断是否故障,里层判断是否快停。由于快停在3-5状态下均可激活,为了编程方便就提高快停的优先级。
而后是变频正常状态下的2-6流转,使用CASE语句判断当前变频处于何种状态,再给变频发送相应的控制字,使变频正常流转至4状态。例如当状态(ETA)为16#xx40(通电被禁止 变频器未上电状态)或16#xx50(通电被禁止 变频器已上电状态)时,给控制字发送16#0006,此时变频的状态(ETA)将会变成16#xx21(通电准备好 变频器未上电状态) 或者 16#xx31(通电准备好 变频器已上电状态) 。
正转 和 反转 命令采用中间标志位作为真正的正反转命令标记,上升沿时置位标记位,下降沿时复位标记位,这样处理有一个好处,当变频器故障或异常时我们强行复位正反转标记位,待变频器转为正常时不会意外启动变频器,仅当正转 和 反转 命令再次出现上升沿时才能够允许运行变频器。
基于程序的可读性建议,可使用块中的常量作为各种状态命令的数据,如下图所示:
使用说明
10704.Sai_CIA402
S7-300,S7-400,S7-1200,S7-1500
说明
可以使用“10704.Sai_CIA402”指令,对使用CIA402状态机的施耐德变频进行基本控制,主要实现对变频器的正转、反转、自由停车和减速停车切换、快停,故障复位;对变频器的基本状态读取例如:就绪、运行、故障、警告、等等状态读取,具体数据说明请参照块接口注释。
功能块接口(SCL)
"10704.Sai_CIA402_DB"(i_StatusWord := 16#0,
i_Enable := TRUE,
i_QuickStop := false,
i_FreeStopp := false,
i_Reset := false,
i_FWD := false,
i_REV := false,
o_ControlWord => _word_out_,
o_PowerOn => _bool_out_,
o_RDY => _bool_out_,
o_Run => _bool_out_,
o_Dir => _bool_out_,
o_Reach => _bool_out_,
o_Limit => _bool_out_,
o_StopKey => _bool_out_,
o_Warn => _bool_out_,
o_Fault => _bool_out_);输入参数
参数 声明 数据类型 存储区 说明 i_StatusWord Input Word I、Q、M、D、L 状态字 i_Enable Input Bool I、Q、M、D、L 1 = 使能变频器控制 0 = 发送控制字 16#0000 i_QuickStop Input Bool I、Q、M、D、L 1 = 变频器快停 i_FreeStopp Input Bool I、Q、M、D、L 1 = 自由停车 0 = 减速停车 i_Reset Input Bool I、Q、M、D、L 1 = 故障复位(故障时有效) i_FWD Input Bool I、Q、M、D、L 1 = 正转 0 = 停止 i_REV Input Bool I、Q、M、D、L 1 = 反转 0 = 停止 输出参数
参数 声明 数据类型 存储区 说明 o_ControlWord Output Word I、Q、M、D、L 控制字 o_PowerOn Output Bool I、Q、M、D、L 1 = 电源接通 o_RDY Output Bool I、Q、M、D、L 1 = 就绪 o_Run Output Bool I、Q、M、D、L 1 = 运行 0 = 停止 o_Dir Output Bool I、Q、M、D、L 1 = 正转 0 = 反转 o_Reach Output Bool I、Q、M、D、L 1 = 达到目标设定值 o_Limit Output Bool I、Q、M、D、L 1 = 内部限制值有效 o_StopKey Output Bool I、Q、M、D、L 1 = 通过Stop键停止 o_Warn Output Bool I、Q、M、D、L 1 = 警告 o_Fault Output Bool I、Q、M、D、L 1 = 故障 使用方式
- 下一篇:看一眼功率就知道电流?老电工是怎么做到的?
- 上一篇:PLC串口通讯的基本知识!