这里使用S7-300使用PROFIBUS-DP和西门系440变频器的通讯为例,其他品牌的变频器PROFIBUS-DP通讯都是一样的。 和变频器的通讯需要单独购买对应的PROFIBUS-DP通讯模块。 组态一个CPU(有DP功能的),建立一条PROFIBUS网络:
下面我们给刚添加的MM400组态I/0模块:
这里因为我们变频器的参数都是手动从变频器更改,我们就不会使用PKW,也就是说我们可以选择前面是0PKW的选项。
Q的第一个字地址是变频器的命令(就是停止,正反转) Q的第二个字地址是变频器的运转信息(就是运行的频率) 这两个是我们常用的,第三个字到第八个字是配合修改变频器参数使用的,我们的变频器参数使用外部设置,暂时不使用。 I的第一个字地址是变频器的状态字(运行或者停止的标志) I的第二个字地址是变频器的实际频率 具体I的对应功能可以在变频器上的P2051参数进行设置,可以查M440的PROFIBUS-DP手册,下图有部分说明:
看完上面的对应关系后,我们就可以控制变频器了 PQW256内传送:047F是变频器启动 047E是变频器停止(也是复位变频器) 0C7F是变频器反转 PQW256内传送变频器的运行频率,特别注意,plc向变频器内传送的数字是16进制的0到4000(即十进制的16384),对应变频器OHZ到最大频率(列如我们变频器设定最大频率是50HZ,那么PLC内的0-4000就对应变频器的0-50HZ)。 PIW258是变频器的实际运行频率(16进制格式)。
关于变频器通讯模块地址的特别说明: 我们软件组态的变频器地址,一定和实际变频器的地址相对应。 地址的设定有两种方法:1 通过 PROFIBUS 模板上的DIP 开关设定 2 由用户通过变频器的参数P0918输入地址。 特别注意: DIP 开关= 0 P0918(CB 地址)指定的地址是有效的 DIP 开关≠0 DIP 开关的设定值优先,P0918 显示DIP 开关的设定值。
拨码开关的地址使用加法计算,列如我们软件上组态的地址是5,那么拨码开关我们就需要把地址4和地址1拨到ON上 变频器的通讯参数设置: P0003:3 定义参数访问级别为专家级别 P700:6 选择命令给定源,=6,PROFIBUS P918:DP的通讯地址(拨码开关是0的话从这里设置地址,拨码开关非零的时候地址由拨码开关决定) P1000(0):6 设置频率给定源,=6,PROFIBUS 特别提示:为了防止发生错误到时CPU停机,建议在程序内添加OB82,OB85,OB86,OB122 OB82:诊断中断,如果使能一个具有诊断中断模块的诊断功能(例如断线、传感器电源丢失),出现故障时调用OB82,如果程序中没有创建OB82,CPU进入停止模式。诊断中断还对CPU所有内外部故障,包括模块前连接器拔出、硬件中断丢失等作出响应。 OB85:用于处理操作系统访问模块故障、更新过程映像区时I/O访问故障、事件触发但相应的OB没有下载到CPU等事件,事件出现,CPU自动调用OB85报错,如果程序中没创建OB85,CPU进入停止模式。 OB86:用于处理扩展机架(不适用于S7-300系列)、PROFIBUS-DP主站、PROFIBUS-DP或PROFINET I/O分布I/O系统中站点故障等事件,事件出现,CPU自动调用OB86报错,如果程序中没有创建,CPU进入停止模式。 OB122处理与I/O地址访问故障有关的事件,例如访问一个I/O模块时,出现读故障等。如果上述故障出现,在程序中没有创建OB121、OB122,CP进入停止模式。
|