台达VFD通讯示例.docx
《台达VFD通讯示例.docx》由会员分享,可在线阅读,更多相关《台达VFD通讯示例.docx(3页珍藏版)》请在冰豆网上搜索。
台达VFD通讯示例
台达VFD-B变频器串口通信中,频率设定,还有正转、反转、停止字符串是怎样写?
范例1:
设定VFD-B系列变频器的频率为30.00Hz,通讯格式为9600,8,N,2,RTU
010620010BB8D488
范例2:
设定VFD-B系列变频器正转,通讯格式为9600,8,N,2,RTU
0106200000220213
范例3:
设定VFD-B系列变频器停止,通讯格式为9600,8,N,2,RTU
01062000000143CA
西门子与台达变频器通讯
ORGANIZATION_BLOCK 主程序:
OB1TITLE=实现S7-200 PLC与台达变频器通信// 实现功能是PLC通过RS485通信控制变频器的正转启动、反转启动、停止、加速、减速和读取输出频率。
变频器通过Modbus通信方式进行// 要求台达变频器设置基本通信参数:
// P00=d03(主频率由RS485控制)// P01=d03(运转/停止由RS485通信控制)// P88=d01(站点定义为1号站)// P90=d00 P91=d00 P92=d02 P113=d01// (其他参数都是出厂默认值,可根据实际情况调节)// BEGINNetwork 1 LD SM0.1CALL SBR0Network 2 // 正转启动命令LD M10.0EUMOVB 16#30, VB104MOVB 16#36, VB105MOVB 16#32, VB106MOVB 16#30, VB107MOVB 16#30, VB108MOVB 16#30, VB109MOVB 16#30, VB110MOVB 16#30, VB111MOVB 16#31, VB112MOVB 16#32, VB113CALL SBR1Network 3 // 反转启动指令LD M10.1EUMOVB 16#30, VB104MOVB 16#36, VB105MOVB 16#32, VB106MOVB 16#30, VB107MOVB 16#30, VB108MOVB 16#30, VB109MOVB 16#30, VB110MOVB 16#30, VB111MOVB 16#32, VB112MOVB 16#32, VB113CALL SBR1Network 4 // 停止指令LD M10.2EUMOVB 16#30, VB104MOVB 16#36, VB105MOVB 16#32, VB106MOVB 16#30, VB107MOVB 16#30, VB108MOVB 16#30, VB109MOVB 16#30, VB110MOVB 16#30, VB111MOVB 16#30, VB112MOVB 16#31, VB113CALL SBR1Network 5 // 1秒脉冲LDN T37TON T37, 10Network 6 // 加速指令(每1秒步进加速0.01Hz)LD M10.3
A T37INCW VW135Network 7 // 减速指令(每1秒步进减速0.01Hz)LD M10.4
A T37DECW VW135Network 8 // 上限频率50.00HzLDW>= VW135, 5000MOVW 5000, VW135Network 9 // 下限频率0.1HzLDW<= VW135, 10MOVW 10, VW135Network 10 // 凡有频率改变,调用子程序3LDW<> VW135, VW145O SM0.1CALL SBR3Network 11 // 读取输出频率指令LD M10.5EUMOVB 16#30, VB104MOVB 16#33, VB105MOVB 16#32, VB106MOVB 16#31, VB107MOVB 16#30, VB108MOVB 16#33, VB109MOVB 16#30, VB110MOVB 16#30, VB111MOVB 16#30, VB112MOVB 16#31, VB113S M20.0, 1CALL SBR1Network 12 // 当读取频率时,执行频率显示运算子程序LD SM4.5
A M20.1CALL SBR2Network 13 // SMB86=0表示正在接收,但本例是利用中断来接收LDB<> SMB86, 0MOVB SMB86, VB400Network 14 // 发送完成标志LD SM4.5= Q0.0END_ORGANIZATION_BLOCKSUBROUTINE_BLOCK SBR_0:
SBR0TITLE=通信初始化参数子程序BEGINNetwork 1 // 初始化通信参数及定义开始符、终止符等接收信息LD SM0.0MOVB 16#69, SMB30MOVB 16#E0, SMB88MOVB 16#3A, SMB89MOVB 18, SMB94Network 2 // 初始化固定参数LD SM0.0MOVB 16#3A, VB101MOVB 16#30, VB102MOVB 16#31, VB103MOVB 16#0D, VB116MOVB 16#0A, VB117Network 3 // 声明使用发送完成中断LD SM0.0ATCH INT0, 9ENIEND_SUBROUTINE_BLOCKSUBROUTINE_BLOCK SBR_1:
SBR1TITLE=计算校验及子程序BEGINNetwork 1 // 建立指针及参数清零等初始化LD SM0.0MOVD &VB101, VD131MOVW 0, VW129MOVW 6, VW127MOVW 0, AC0MOVW 0, AC1MOVW 0, AC2MOVW 0, AC3Network 2 // 循环计算原始累加和LD SM0.0FOR VW125, 1, VW127Network 3 LD SM0.0LPSMOVW *VD131, AC0ANDW 16#FF, AC0AB> AC0, 16#39MOVW AC0, AC1-I 16#37, AC1LRDAB<= AC0, 16#39MOVW AC0, AC1-I 16#30, AC1LRDINCD VD131LRDMOVW *VD131, AC0ANDW 16#FF, AC0LRDAB> AC0, 16#39MOVW AC0, AC2-I 16#37, AC2LRDAB<= AC0, 16#30MOVW AC0, AC2-I 16#30, AC2LRDSLB AC1, 4LRDMOVW AC1, AC3+I AC2, AC3LRD+I AC3, VW129LPP+D 1, VD131Network 4 NEXTNetwork 5 // 指针加一,指向下一个LD SM0.0MOVW 0, AC2MOVW 0, AC3+D 1, VD131Network 6 LD SM0.0LPSMOVW 16#FF, AC0ANDW VW129, AC0INVW AC0MOVW 1, VW800+I AC0, VW800MOVB VB801, AC2SRB AC2, 4AW> AC2, 9+I 16#37, AC2LRDMOVB AC2, *VD131LRD+D 1, VD131LRDMOVB VB801, AC3ANDB 16#0F, AC3LRDAW> AC3, 9+I 16#37, AC3LRDAW<= AC3, 9+I 16#30, AC3LPPMOVB AC3, *VD131Network 7 // 发送前,强行禁止接收LD SM0.0MOVB 16#70, SMB87RCV VB200, 0Network 8 // 开始发送LD SM0.0MOVB 17, VB100XMT VB100, 0FILL 0, VW200, 9Network 9 // 发送后允许接收LD SM0.0MOVB 16#F0, SMB87END_SUBROUTINE_BLOCKSUBROUTINE_BLOCK SBR_2:
SBR2TITLE=频率显示运算子程序VARLIN1:
DWORD;lLIN2:
DWORD;LIN3:
DWORD;LIN4:
DWORD;END_VARBEGINNetwork 1 // 把接收到的16进制ASCII码信息,转换成习惯的小数点形式LD SM0.0BTI VB2008, LW0BTI VB2009, LW2BTI VB2010, LW4BTI VB2011, LW6Network 2 LD SM0.0LPSAW> LW0, 16#40MOVW LW0, AC0-I 16#37, AC0LPPAW< LW0, 16#40MOVW LW0, AC0-I 16#30, AC0Network 3 LD SM0.0LPSAW> LW2, 16#40MOVW LW2, AC1-I 16#37, AC1LPPAW< LW2, 16#40MOVW LW2, AC1-I 16#30, AC1Network 4 LD SM0.0LPSAW> LW4, 16#40MOVW LW4, AC2-I 16#37, AC2LPPAW< LW4, 16#40MOVW LW4, AC2-I 16#30, AC2Network 5 LD SM0.0LPSAW> LW6, 16#40MOVW LW6, AC3-I 16#37, AC3LPPAW< LW6, 16#40MOVW LW6, AC3-I 16#30, AC3Network 6 LD SM0.0MOVB AC0, LB8SLB LB8, 4MOVB AC2, LB9SLB LB9, 4
Network 7 LD SM0.0MOVB LB8, VB3200ORB AC1, VB3200Network 8 LD SM0.0MOVB LB9, VB3201ORB AC3, VB3201Network 9 LD SM0.0ITD VW3200, VD3300DTR VD3300, VD3304MOVR VD3304, VD3308/R 100.0, VD3308Network 10 LD SM0.0R M20.1, 1END_SUBROUTINE_BLOCKSUBROUTINE_BLOCK SBR_3:
SBR3TITLE=输出频率通信格式整理子程序BEGINNetwork 1 // 凡是有输出频率,频率改变LD SM0.0MOVB 16#30, VB104MOVB 16#36, VB105MOVB 16#32, VB106MOVB 16#30, VB107MOVB 16#30, VB108MOVB 16#31, VB109MOVW VW135, VW137MOVW 0, AC0MOVW 0, AC1MOVW 0, AC2MOVW 0, AC3Network 2 LD SM0.0LPSMOVB VB137, AC0ANDB 16#0F, AC0AW> AC0, 9+I 16#37, AC0LRDAW<= AC0, 9+I 16#30, AC0LRDITB AC0, VB111LRDMOVB VB138, AC1ANDB 16#0F, AC1LRDAW> AC1, 9+I 16#37, AC1LRDAW<= AC1, 9+I 16#30, AC1LPPITB AC1, VB113Network 3 LD SM0.0LPSMOVW VW137, VW139SRW VW139, 4MOVB VB139, AC2ANDB 16#0F, AC2AW> AC2, 9+I 16#37, AC2LRDAW<= AC2, 9+I 16#30, AC2LRDITB AC2, VB110LRDMOVB VB140, AC3ANDB 16#0F, AC3LRDAW> AC3, 9+I 16#37, AC3LRDAW<= AC3, 9+I 16#30, AC3LRDITB AC3, VB112LRDMOVW VW135, VW145LPPCALL SBR1END_SUBROUTINE_BLOCKINTERRUPT_BLOCK INT_0:
INT0TITLE=发送完成中断程序BEGINNetwork 1 // 除读取频率其他指令返回信息LD M20.0RCV VB200, 0Network 2 // 读取频率返回信息LD M20.0RCV VB2000, 0S M20.1, 1R M20.0, 1END_INTERRUPT_BLOCK