求解释下MM420变频器FC块中的一段小程序

以下是MM420 FC块中的一段小程序,应该是变频器跟电机通讯的一段程序,该程序已经在项目中应用过,是没有问题的,不过我看得不是很明白,哪位能帮忙在后面注释下吗?其中CTRL为控制字起始地址,STATUS为状态字起始地址,M_CTRL为控制字标记位,M_STATUS为状态字标记位,SPEED为实际速度【0-100%】,SET为设置的速度【0-100%】

程序段1:Load status word

L #CTRL
SLD 3
LAR1
L PIW[AR1,P#0.0]
T LW2
T #M_STATUS

程序段2:Load actual speed      16384=100%

L #CTRL
L 2
+I
SLD 3
LAR1
L PIW[AR1,P#0.0]
ITD
DTR
L 1.638400e+002
/R
T #SPEED

程序段3:Write control word

L #STATUS
SLD 3
LAR1
L LW0
T PQW[AR1,P#0.0]
T #M_CTRL

程序段4:Set speed      16384=100%
L #STATUS
L 2
+I
SLD 3
LAR1

L #SET
L 1.638400e+002
*R
RND
T PQW[AR1,P#0.0]

问题补充:
这段程序是在实际项目中使用过好几次的,是没问题的

最佳答案

控制字地址编号和状态字地址编号可能有误
________________________________________________________________________

程序段1:Load status word

L #CTRL   //载入控制字地址编号到累加器1(我认为这里有笔误应是状态字编号#STATUS)
SLD 3     //左移3位得到控制字地址(因地址指针的低3位是位地址)
LAR1      //以上地址放入地址寄存器AR1
L PIW[AR1,P#0.0]   //载入控制字到累加器1
T LW2              //保存累加器1到局部变量LW2
T #M_STATUS        //保存累加器1到变量#M_STATUS

程序段2:Load actual speed      16384=100%

L #CTRL   //载入控制字地址编号到累加器1(我认为这里有笔误应是状态字编号#STATUS)
L 2       
+I        //累加器1加2(因速度是PZD的第二个字) 
SLD 3     //左移3位得到速度的地址
LAR1      //以上地址放入地址寄存器AR1
L PIW[AR1,P#0.0]   //载入速度到累加器1
ITD                //累加器1从整数转换为双整数
DTR                //累加器1从双整数转换为实数
L 1.638400e+002
/R                 //累加器1除以163.84得到实际速度,因为16384对应速度100% 
T #SPEED           //保存速度到#SPEED

程序段3:Write control word

L #STATUS   //载入状态字地址编号到累加器1(我认为这里有笔误应是控制字编号#CTRL)
SLD 3       //左移3位得到状态字地址
LAR1        //以上地址放入地址寄存器AR1
L LW0       //载入局部变量LW0到累加器1
T PQW[AR1,P#0.0]    //输出累加器1到状态字地址
T #M_CTRL           //保存累加器1到#CTRL

程序段4:Set speed      16384=100%
L #STATUS   //载入状态字地址编号到累加器1(我认为这里有笔误应是控制字编号#CTRL)
L 2
+I          //累加器1加2(因速度是PZD的第二个字) 
SLD 3       //左移3位得到速度的地址
LAR1        //以上地址放入地址寄存器AR1

L #SET      //载入变量#SET到累加器1
L 1.638400e+002   
*R                //累加器1乘以163.84,因为16384对应速度100% 
RND               //实数转换为双整数  
T PQW[AR1,P#0.0]  //输出速度 

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc185358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月30日 下午1:40
下一篇 2017年6月30日 下午1:40

相关推荐

  • mm440故障复位

    mm440报故障,把控制字位07置1,状态字显示仍然故障,但把正向启动控制字发过去,可以启动。如果用面板fn复位,状态字显示准备。位07为故障确认,与故障复位功能相同吗?有何区别?…

    MM440/430/420/410 2017年6月14日
  • MM430控制问题

    MM430通过USS协议用PLC200控制启停,能不能同时也用端子控制? 最佳答案 MM430通过USS协议用PLC200控制启停,能不能同时也用端子控制?不能进行USS协议和端子…

    2017年6月11日
  • M440变频器正反转控制问题

    如图所示,正转控制由KA2常开控制,反转由KA3常开控制,问题是为什么反转时要把KA3并入S5正转这个端子? 图片说明:    最佳答案 因为s5段子控制的是变…

    2017年6月12日
  • M420变频器设置

    请问大家用M420利用远程数字量输入输出控制,有两段速度设定,一个输入有信号是一种频率,另一个有输入信号伸另一种频率,要设置哪些参数,还有P0700选择命令源是不是要设置成2啊,谢…

    MM440/430/420/410 2017年6月10日
  • 6SY7000-0AD57相关问题

    风机6SY7000-0AD57这个订货号,包括哪些东西,他是包括风机跟电容还有支架吗?有人说包括支架,也有说不包括支架,电容的他包括吗?电容的订货号是多少?能单独订吗?还有支架能单…

    MM440/430/420/410 2017年6月18日
  • Profibus

    问题补充:MM440通过Profibus-DP通讯模块与CPU 315-2 DP通讯。请问如何在STEP 7中组态? 最佳答案 组态从站: …

    MM440/430/420/410 2017年11月1日
  • 变频器没有报警,但电机没力

    请教一下各位大师:有一台高速电机,功率9.5KW,电动机转速24000转,使用6SE6440-2UD31-8DA1进行控制,启动后,变频器没有报故障,电动机也运行,但我用手就能使电…

    MM440/430/420/410 2017年10月31日
  • drive monitor与PC数据传递

    PC与drive monitor数据传递参数,PC首先与RS232转RS485的转换器相连接,RS485,RS485的+端接至MM440的端子29,RS485的-端接至M…

    MM440/430/420/410 2017年8月25日
  • 西门子430变频器频率升到39Hz就上不去。

    西门子430变频器频率升到39Hz就上不去,但手动可以。具体参数如下:1.水泵功率37KW,额定电流70A.2.PLC输出10V(用万用表测量结果也是10V,在操作面板中查r075…

    MM440/430/420/410 2017年6月8日
  • MM440下提高启动转矩疑问

    项目中有两套设备都是MM440的变频器带15KW电机做升降机用(参数完全一样),发现A电机带上重负载不能启动(半年前是可以带重载启动的,并且直到现在带轻载的时候都可以顺利启动运行)…

    MM440/430/420/410 2017年7月31日