S7-200和S7-300通过EM 277可以实现两种通信方式:一种方式是MPI协议通信,MPI协议通信是S7-200和S7-300使用EM 277的默认通信方式;另一种方式是通过EM277的方式组建DP网络,S7-300做DP主站,S7-200做DP从站。
S7-200与S7-300通过EM 277进行PROFIBUS-DP通信,需要在STEP 7中进行S7-300站组态,在S7-200系统中不需要对通信进行组态和编程,只需将要进行通信的数据整理存放在V存储区,与S7-300的组态EM 277从站时的硬件I/O地址相对应就可以了。下面用实例来说明S7-200和S7-300通过EM 277实现PROFIBUS-DP通信。
例8-5一台S7-200 PLC(CPU为226CN),一台S7-300 PLC(CPU为314C-2DP),两者之间进行PROFIBUS-DP通信。功能要求:
1)将S7-200 PLC采集到的开关量信号(如:电动机运行、故障、阀门的开/关到位反馈信号等)共一个字的数据传送到S7-300 PLC中进行监控。
2)S7-300 PLC发送一个字的数据到S7-200 PLC,控制S7-200 PLC的输出,如:电动机的启停、阀门的开关等。
3)S7-200 PLC采集的数字量信号存放在VW102中,接收S7-300 PLC发送过来的数据存放在VW100中。
4)S7-300 PLC的CPU的PROFIBUS-DP地址为2;S7-200 PLC的CPU的PROFI-BUS-DP地址为3。
(1)主要硬件配置
1)S7-200 PLC编程软件V4.0 STEP 7-Micro/WIN SP9和S7-300 PLC编程软件STEP7 V5.5 SP3。
2)一台CPU 226CN+一台CPU 314C-2DP。
3)一个PROFIBUS电缆+2个DP接头。
4)S7-200 PLC编程电缆PC/PPI电缆+S7-300 PLC编程电缆MPI电缆+计算机。
5)必要的工具。
(2)步骤
1)PROFIBUS-DP通信两台PLC的硬件配置及连接如图8-81所示。
图8-81 PROFIBUS-DP通信硬件配置及连接
2)编写S7-200 PLC程序,S7-200 PLC的程序如图8-82所示。
3)组态S7-300 PLC。
①打开S7-300 PLC编程软件STEP 7,新建一个工程,命名为“CPU314C-2DP-S7200DP”,选择所建的项目名,单击鼠标右键选择“插入对象”中的“SIMATIC 300站点”插入300站点,如图8-83所示。
图8-82 S7-200 PLC程序
图8-83 插入300站点
②双击生成的“SIMATIC 300(1)”如图8-84所示;弹出“硬件”,如图8-85所示。
③双击“对象名称”下的“硬件”,弹出“硬件配置”对话框,如图8-86所示。
图8-84 生成SIMATIC 300(1)
图8-85 硬件
图8-86 硬件配置对话框
④安装GSD文件。在硬件配置窗口中,单击菜单栏“选项”菜单,在下拉列表中找到“安装GSD文件…”并单击,如图8-87所示。弹出“安装GSD文件”对话框,单击“浏览”按钮,找到EM 277 GSD文件的存放路径,并单击“确定”按钮,如图8-88所示。
图8-87 选项、安装GSD文件
图8-88 选择GSD文件存放路径
确定后,“siem089d.gsd”的文件会被添加进来,选中并单击“安装”按钮,会弹出是否“确认安装GSD文件”对话框,单击“是”按钮,如图8-89所示。
图8-89 安装GSD文件
执行安装,如果是已经安装过的话,会提示覆盖信息,直接覆盖,安装完成后,弹出“安装已成功完成”对话框,单击“确定”按钮,并关闭“安装GSD文件”窗口,安装成功,如图8-90所示。
图8-90 成功安装GSD文件
⑤插入导轨。先在“配置文件”下找到“SIMATIC-300”并展开,如图8-91中的“1”所示;再找到“RACK-300”并展开,双击“Rail”,如图8-91中的“2”所示;或选中“Rail”并按住鼠标左键,拖到图中左面空白的地方释放鼠标,生成“(0)UR”导轨,如图8-91中的“3”所示。
图8-91 插入导轨
⑥添加模块。根据自己实际用到的模块与放置的槽位,逐一添加到导轨中。本例中,只用到“CPU 314C-2DP”,故只在“2”槽中添加“CPU 314C-2DP”。首先,先选中“2”槽,如图8-92中的“1”所示;再找到“CPU-300”下的“CPU-314 C-2 DP”并展开,如图8-92中的“2”所示;找到所用的CPU版本号,本例使用“V2.0”版本,如图8-92中的“3”所示;双击“V2.0”或选中“V2.0”并按住鼠标左键,拖到图中“2”号槽的位置释放鼠标。
图8-92 添加CPU 314C-2 DP
⑦配置PROFIBUS属性。添加完CPU后,弹出“PROFIBUS接口属性”对话框,首先选择地址“2”,如图8-93中的“1”所示;再单击“新建”按钮,如图8-93中的“2”所示。
(www.xing528.com)
图8-93 PROFIBUS接口属性
单击“新建”按钮,弹出“新建子网PROFIBUS属性”对话框,如要更改名称,可以在“名称(N)”中更改,本例保持默认;选择“网络设置”,如图8-94中的“1”所示;选择传送速率为“1.5Mbps”,如图8-94中的“2”所示;配置文件选择“DP”,如图8-94中的“3”所示;其余保持默认,单击“确认”按钮,如图8-94中的“4”所示。
图8-94 PROFIBUS网络设置
单击“确认”按钮,返回“PROFIBUS接口属性”对话框,可以看到生成名称为“PROFIBUS(1)”传送速率为“1.5Mbps”的PROFIBUS网络,单击“确定”按钮,如图8-95所示。
图8-95 生成PROFIBUS网络
⑧添加EM 277 PROFIBUS-DP。首先,选中所生成的“PROFIBUS(1)”网络,如图8-96中的“1”所示;展开“配置文件”下的“PROFIBUS DP”,如图8-96中的“2”所示;再展开“PLC”,如图8-96中的“3”所示;选中“EM 277 PROFIBUS-DP”,如图8-96中的“5”所示;并按住鼠标左键,拖到所选择的“PROFIBUS(1)”网络,当鼠标变成如图8-96中的“5”所示;松开鼠标,弹出“EM 277 PROFIBUS-DP接口属性”对话框,如图8-97所示。
图8-96 EM 277 PROFIBUS-DP接口属性
图8-97 添加EM 277 PROFIBUS-DP
⑨配置EM 277 PROFIBUS-DP属性。设置地址为“3”,并单击“确定”按钮,如图8-98所示。EM 277 PROFIBUS-DP成功添加到“PROFIBUS(1)”网络下,如图8-99所示。
逾 添加EM 277输入/输出。首先,选中所添加的EM 277,如图8-100中的“1”所示;再在配置文件中展开“EM 277 PROFIBUS-DP”,找到“1 Word Out/1 Word In”,如图8-100中“2”所示;双击或按住鼠标拖到如图8-100中“3”所示的位置,释放鼠标。生成的效果,如图8-101所示。其中I的地址为IB256、IB257,两个字节组成一个字的长度的输入;Q的地址为QB256、QB257,也是一个字的长度的输出。
图8-98 设置EM 277 PROFIBUS-DP地址为3
图8-99 EM 277 PROFIBUS-DP添加完成
图8-100 配置EM 277参数
图8-101 所添加的1 Word Out/1 Word In
更改地址。如要更改地址,可以双击地址栏,如图8-102中的“1”所示;弹出“DP从站属性”对话框,可以在图8-102中“2”和“3”的位置分别输入所要输出与输入的地址;本例全部使用“0”起始的地址,改好后单击“确定”按钮,如图8-102中的“4”所示;确定后,输入/输出地址变为0~1,如图8-103所示。
图8-102 更改输入/输出地址
⑾分配EM 277参数。首先,双击网络上的EM 277“”,弹出“DP从站属性”对话框;选择“分配参数”,如图8-104中的“1”所示;展开参数下的“设备专用参数”并将“I/O Offset in the V-memory”后的数值列中的“0”改为“100”,如图8-104中的“2”所示;单击“确定”按钮,如图8-104中的“3”所示。“I/O Offset in the V-memory”表示在S7-200 PLC中V存储区的偏移地址的起始值,如本例中设置为“100”,表示所用的V存储区从VB100起始,所用的数据长度由第10步骤中的“1 Word Out/1Word In”所决定,本例使用的为一个字的输入,一个字的输出,共两个字,故用到的V存储区从VB100到VB103共4个字节(也就是两个字),这4个字节在S7-200 PLC程序中不可以再做其他使用。
图8-103 改变后的地址
图8-104 分配EM 277参数
⑿编译保存。单击编译保存“”按钮,并关闭“硬件配置”窗口。下面就可以进行编程了。
4)编写S7-300程序。
①EM 277与S7-300 PLC地址对应关系说明。在上面的硬件设置中,EM 277的输出/输入地址分别设置0...1;而且其数据格式为“1 Word Out/1 Word In”。EM 277的输出对应S7-300的输入,EM 277的输入对应S7-300的输出。也就是EM 277的1 WordD Out对应S7_300中的PIB0~PIB1;EM 277的1 WordD In对应PQB0~PQB1。EM 277的变量偏移量设置为100,所以S7-300的PQB0~PQB1对应S7-200中的VB100~VB101;PIB0~PIB1对应S7-200中的VB102~VB103。所以对PQB0~PIB1和PIB0~PQB1进行操作时实际就是同时对S7-200中的VB100~VB101和VB102~VB103进行操作。表8-24列出了S7-300与S7-200的地址对应关系。
表8-24 S7-300与S7-200地址对应关系
注意:在本例中使用的CUP 314C-2 DP本身自带DI/DO、AI/AO输入/输出I/O点数,如图8-105所示。在硬件组态中没有改变其地址,故可以使用PQW0与PIW0,如果改变了CUP 314C-2 DP自带的I/O点的地址,则应注意用于DP通信所使用的PQW与PIW的地址不能与硬件地址重复。
图8-105 CUP 314C-2 DP本身自带I/O点数
于 指令说明。在S7-300中编程,只要用MOVE指令将对S7-200的命令数据(如MW0)放在PQW0中,将接收的PIW0的数据放在相应的存储区(如MW2)中即可。如图8-106所示,用MOVE指令将MW0的数据放到PQW0中,实际上就是将S7-300 PLC的MW0的数据通过PQW0发送给S7-200 PLC。如图8-107所示,用MOVE指令将PIW0的数据放到MW2中,实际上就是将S7-200 PLC的数据通过PIW0读取到S7-300 PLC的MW2。
图8-106 将S7-300中的MW0 发送到S7-200中
图8-107 将S7-200中的数据读取到S7-300中的MW2
③编写S7-300程序。直接打开OB1块,在OB1中编写S7-300与S7-200 PLC通过EM 277实现DP通信程序。S7-300 PLC的程序如图8-108所示。
图8-108 S7-300 PLC程序
5)调试。把EM 277的硬件的拨码地址设置为和S7-300中组态的EM 277的DP地址一致就可以了,S7-200 PLC必须断电重启,EM 277的地址方能生效。经过上面的组态,在S7-200和S7-300中都不用编写任何有关通信的程序。
将PROFIBUS电缆通过PROFIBUS-DP总线连接器分别与S7-300 PLC和S7-200PLC连接,并将PROFIBUS-DP总线连接器上的拨码开关拨到ON状态。图8-109所示为PROFIBUS-DP总线连接器上的拨码开关向上拨为:ON;向下拨为:OFF。
图8-109 PROFIBUS-DP总线连接器上的拨码开关
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。