s7-200和acs550通讯(modbus)(总结)
S7-200通过MODBUS与ACS550通信
1.s7-200做主站对acs550进行读写参数第一步:硬件连接
引脚123456789连接外壳PROFIBUS名称屏蔽24V返回RS-485信号B发送应用5V返回+5V+24V RS-485信号a不屏蔽端口0/端口1逻辑RS-485信号Brts(TTL)逻辑+5V,100欧姆串联电阻+24V RS-485信号10位协议选择(输入)外壳接地通过上图确定连接电缆的连接,即将9针串行端口中的3针连接到RS-485信号B+,将9针串行端口中的8针连接到RS-485信号a-。
acs550变频器的28-32端子的拨码开关要打到on状态(即向下),第二步:软件准备。
西门子S7-200编程软件(版本3.2或更高版本已包含Modbus通信库,因此无需编程)。安装编程软件后,安装西门子标准库文件。3.变频器基本参数设置
1.基本设置
99.01英语
02applicationmode-----factory
04电机控制模式------标量(或DTC)05~09电机铭牌参数
10motoridrunmode-----idmagn
050---Abbbdive
10实际值(0102速度)11实际值(0103频率)12实际值(0104电流)13实际值(0105转矩)14实际值(0106功率)15实际值(0109电压)
(注意:设置通信参数后,无需刷新,必须重新通电才能更新。)
11.01keypadrefsel-----ref1(rmp)02外部给定选择------ext1
五、 读写转换器参数
在modbus控制器的存储器中,控制字、状态字、参数和实际值的定位如下:5310开始的数据中可以设置需要采集的实际值,如:5310----0102,5311---0103,5312---0104,5313---0105,5314---0106,5315---0109,该设置在变频器上设置,分别对应于速度,频率等参数。
40001的控制字是:初始化--16#476,开始--16#47f,停止--16#477控制字40001给出140002给出240003实际值140005实际值240006实际值340007实际
值440008实际值540009实际值540010固定1000053115312531353145315注:40001是控制字,40002是给定的,只要在上位机的这些地址中给出值,就可以自动写入,无需在变频器中设置;也就是说,可以直接将控制字和给定值赋予40001和40002。40002中的10000是25Hz(或速度)的给定频率(10decimal 1000020000的最大频率对应50Hz)。通过改变修改值可以设置不同的频率(或速度);数据会自动设置为相应的参数。通过查看参数,可以看到参数的变化。第4步:PLC编程
同一时刻只能有一个读写功能(即mbus_msg)使能,所以每一个读写功能(即mbus_msg)都用上一个mbus_msg指令的done完成位来激活。本例给出启动变频器,并且给定50hz的速度的编程。1.调用modbusrtu主站初始化和控制子程序
使用SM0 0调用MBus_uCtrl完成主站的初始化并启动其功能控制。
各参数意义如下:
EN enable:确保每个扫描周期都已启用(使用sm0.0)
mode模式:为1时,使能modbus协议功能;为0时恢复为系统ppi协议baud波特率:支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。parity校验:校验方式选择
0=无验证;1=奇数比较试验;2=偶数比较
timeout超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000毫
秒(1秒),允许设置的范围为1-32767。注意:这个值必须设置足够大以保证从站有时间响应。done完成位:初始化完成,此位会自动置1。可以用该位启动mbus_msg读写操作(见例程)
错误初始化错误代码(仅当完成位为1时有效):
0=无错误;1=校验选择非法;2=波特率选择非法;3=模式选择非法2.调用modbusrtu主站读写子程序mbus_msg,发送一个modbus请求;
同时需要注意的是,Modbus主站需要不断轮询和扫描从站的数据来读取数据,但只需要写入一次。
可同时将所有的变频器参数读取过来,然后再分开来进行操作。
因篇幅问题不能全部显示,请点此查看更多更全内容