西门子plc与ABB510变频器modbus通讯 1,读写变频器的内部参数 2,控制变频器启停,读频率电流 3,设置变频器输出频率 4,配上位机触摸屏学习,简单 有详细注释,简单易懂
搞工控的兄弟们都懂,让西门子PLC和ABB变频器搞对象(通讯)这事,关键得摸准Modbus的脾气。今儿咱用S7-1200和ABB510搞个实战,直接上硬菜!
先给设备牵个红线(物理接线)
RS485通讯线怼上,西门子CB1241通讯板接ABB的端子。注意A接A+,B接B-,终端电阻该上的时候别抠搜。波特率建议先设9600,调试稳了再飙车。
TIA Portal里整活(程序架构)
// 主程序OB1
CALL "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:=16#0305 // 参数地址转十进制773
DATA_PTR:=P#DB1.DBX0.0 WORD 1 // 存到DB1.DBW0
DONE:=#Read_Done // 完成标志
ERROR:=#Err_Code // 错误码
让电机蹦迪(启停控制)
启停指令藏在参数0101:
// 写启动命令(1=启动,2=停止)
CALL "MB_MASTER_WRITE_SINGLE_REG"
REQ:=#Start_Cmd // 来自触摸屏的触发
MB_ADDR:=1
DATA_ADDR:=16#0101
DATA_IN:=1 // 写入值
DONE:=#Write_Done
ERROR:=#Err_Code
调频老中医(频率设定)
// 设置频率到参数0102(单位0.01Hz)
CALL "MB_MASTER_WRITE_SINGLE_REG"
DATA_ADDR:=16#0102
DATA_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,配上位机触摸屏学习,简单
有详细注释,简单易懂