西门子plc与ABB
510变频器modbus通讯 1,读写变频器的内部参数 2,控制变频器启停,读频率电流 3,设置变频器输出频率 4,配上位机触摸屏学习,简单 有详细注释,简单易懂
搞工控的兄弟们都懂,让西门子PLC和ABB变频器搞对象(通讯)这事,关键得摸准Modbus的脾气。今儿咱用S7-1200和ABB510搞个实战,直接上硬菜!
先给设备牵个红线(物理接线)RS485通讯线怼上,西门子CB1241通讯板接ABB的端子。注意A接A+,B接B-,终端电阻该上的时候别抠搜。波特率建议先设9600,调试稳了再飙车。 TIA Portal里整活(程序架构)
// 主程序OB1CALL "MB_MASTER" // Modbus主站指令Mode:=1 // 持续通讯模式MB_ADDR:=1 // 变频器站号DATA_ADDR:=%MW100 // 数据交换区DATA_LEN:=10 // 交换数据长度ERROR:=MB_Error // 错误代码拿捏变频器参数的骚操作读参数直接掏03功能码,写参数用06: // 读取输出电流(参数0305)CALL "MB_MASTER_READ_HOLD_REG"REQ:=TRUE // 触发读取MB_ADDR:=1 // 从站地址DATA_ADDR:=160305 // 参数地址转十进制773DATA_PTR:=PDB1.DBX0.0 WORD 1 // 存到DB1.DBW0DONE:=Read_Done // 完成标志ERROR:=Err_Code // 错误码// 写启动命令(1=启动,2=停止)CALL "MB_MASTER_WRITE_SINGLE_REG"REQ:=Start_Cmd // 来自触摸屏的触发MB_ADDR:=1DATA_ADDR:=160101DATA_IN:=1 // 写入值DONE:=Write_DoneERROR:=Err_Code调频老中医(频率设定)
// 设置频率到参数0102(单位0.01Hz)CALL "MB_MASTER_WRITE_SINGLE_REG"DATA_ADDR:=160102DATA_IN:=3000 // 30.00Hz// 注意要乘100处理,ABB这货认的是整数触摸屏速成班(WinCC Basic)
新建变量关联DB块
拖个"频率设定"IO域,格式选INT
启停按钮直接绑定M点
电流显示用文本列表,后缀自动加个A
踩坑指南:
地址记得16进制转10进制(直接前面加16#)
写参数前先确认P0000=3(开放参数修改)
通讯超时设500ms起步,ABB有时候反射弧长
电流值要除以100,别傻乎乎直接显示原始值
整完这套组合拳,拿万用表量量输出端子,看着电机转起来那刻,比喝冰镇红牛还带劲!下回整个Profinet通讯的活儿,那才叫丝滑~西门子plc与ABB510变频器modbus通讯1,读写变频器的内部参数2,控制变频器启停,读频率电流3,设置变频器输出频率4,配上位机触摸屏学习,简单有详细注释,简单易懂 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!