西门子S7-200作为主站与台达变频器Modbus RTU通讯,西门子plc通讯实例
一、台达变频器有关通讯参数
根据下图台达变频器通讯协议的参数,向台达变频器2000h地址写数据01(XX000001)时停止运行,写12H(XX010010)是正转,写22H (XX100010)是反转。
根据台达变频器通讯协议向变频器2103H地址发送03命令可以查询输出频率,向变频器2104H地址发送03命令可以查询输出电流,向变频器2106H地址发送03命令可以查询输出电压,向变频器210FH地址发送03命令可以查询输出功率,见下表。
通讯参数出厂设定值如下图所示。所以在使用PLC控制变频器之前需要对变频器进行必要的设置,如波特率,地址,通讯格式等等。
通讯协议:台达变频器支持Modbus RTU模式和ASCII码模式,我们用RTU模式,通讯协议如下图:例如要查询地址是01的2102H的数据,需要发送0103210200028FF7,返回01030417700000FE5CH,其中01是地址,03是查询命令,417700000F是返回的数据8FF7是校验码。如果要向变频器写数据需要发送06命令,例如发送0106010017708622,向01号变频器的0100地址写数据1770,如果操作成功,返回0106010017708622。
二、PLC程序
1、控制要求
实时读取变频器的输出频率、输出电压、输出电流和输出功率。
按下加速按钮,变频器频率升高。
按下减速按钮,变频器频率减少。
按下正转按钮,变频器正转启动。按下反转按钮,变频器反转运行。按下停止按钮,变频器停止运行。
2、程序说明
首先对PLC RS-485 通讯口进行初始化,使其通讯格式为 MODBUS ASCII,9600,7,E,1。变频器RS-485 通讯口通讯格式需与 PLC 通讯格式一致。
下面对源程序逐条说明。
3、源程序如下
先初始化VB99=1赋值,然后定时器每中断一次VB99中的1循环左移一次。用于控制程序执行。
下面是初始化MBUS_CTRL,设置波特率等参数。
下面程序是通过按钮(I0.0—I0.2)控制变频器正转,反转和停机。修改变频器运转命令,M1.0正转,M1.1反转,M1.2,向变频器2000h单元值写入1是停止,12是正转,22是反转,1是停机。
2000h=8192,加上plcMBUS的起始V区起始地址40001=48193,下面程序是把vb100中的数写给变频器的2000单元。
下面程序是按下加速按钮(I0.3)vw200单元数值增加100,按下减速按钮(I0.4)VW200单元数值减100.
修改变频器频率(vw200单元数值存储的是频率值),加速按钮M1.3,,减速按钮M1.4,当变频器输出为20hz时,可写入2000,5hz时写入500,台达变频器的地址是2001h,plc映射地址是vw200。8194是向2001H单元写入频率值。
以下为读变频器参数,读变频器2103H是获取输出频率,读2104H是获取输出电流,2106h输出电压,2103h=8451,8451+40001=48452是向2103H读数据,即读频率值,读出的频率值送变量存储器VB1000单元中。
下面获取输出电流。
下面获取输出电压。
下面获取输出功率。
启动定时器T37,1秒中断一次,ROL_B于是循环左移一位,左边移出的位补到右边。 用于控制读取速度。
你学会了吗?