湖南网站建设推荐,太原优化排名推广,crack wordpress,公众号中做微网站西门子1200plc与施耐德变频器modbus通讯程序#xff0c;可以控制变频启停#xff0c;设定频率#xff0c;读取变频器电压、电流、运行频率#xff0c;博图V14版本程序。直接上干货#xff0c;今天聊聊西门子S7-1200跟施耐德ATV310变频器的Modbus串口通讯。现场用这种组合的…西门子1200plc与施耐德变频器modbus通讯程序可以控制变频启停设定频率读取变频器电压、电流、运行频率博图V14版本程序。直接上干货今天聊聊西门子S7-1200跟施耐德ATV310变频器的Modbus串口通讯。现场用这种组合的兄弟应该不少实测V14版本博图能稳定跑起来。先说重点硬件接线用RS485半双工3线制T/T-加GND记得终端电阻看情况挂。PLC这边先组态个CM1241模块参数配置直接贴关键代码MB_COMM_LOAD_DB(REQ:TRUE, PORT:0, //RS485模块位置 BAUD:9600, PARITY:3, //偶校验 FLOW_CTRL:0, RTS_ON_DLY:0, RTS_OFF_DLY:0);这个指令块初始化通讯模块注意校验方式要和变频器设成一致。遇到过有人PARITY参数填错导致数据乱码盯着报文抓半小时才发现。读写功能块用轮询方式最稳别同时发多个请求。启停控制写个功能块MB_MASTER_DB(REQ:Start_Cmd, //触发信号 MB_ADDR:1, //变频器站号 MODE:1, //写操作 DATA_ADDR:8193, //施耐德控制字地址 DATA_LEN:1, DATA_PTR:P#DB1.DBX0.0); //指向控制字047E切运行重点在施耐德的控制字结构启动时要先发047E再切047F这个坑踩过的都懂。频率设定值给16384对应50Hz记得做标定转换。西门子1200plc与施耐德变频器modbus通讯程序可以控制变频启停设定频率读取变频器电压、电流、运行频率博图V14版本程序。读参数用个循环队列电压电流频率三连读CASE State OF 1: //读输出频率 MB_MASTER(ADDR:1, DATA_ADDR:8448, DATA_LEN:1); 2: //读直流电压 MB_MASTER(ADDR:1, DATA_ADDR:8460, DATA_LEN:1); 3: //读输出电流 MB_MASTER(ADDR:1, DATA_ADDR:8449, DATA_LEN:1); END_CASE;实测施耐德这些参数的寄存器地址和西门子的偏移算法不太一样直接查ATV手册最稳。数据回来要做INT转REAL注意有的参数需要除10或100处理。调试时用博图自带的报文监控看到Error16#8308多半是站号不对报超时就查接线。有个邪门情况某次GND线虚接导致能发不能收拿万用表量了半小时才发现。建议备个USB转485调试器直接抓包比PLC在线诊断快得多。最后说个骚操作用指针直接操作数据块能省不少事比如P#DB2.DBD4 //直接指向浮点数存储区但千万注意别越界曾经手滑写错指针把参数区数据全冲了...血的教训。整体程序框架建议用状态机轮询别在OB1里直接堆指令否则扫描周期超了通讯会丢包。