各位老师,我现在有一个300主站与200子站DP通讯,读取及控制子站的数据,由于子站是第三方厂家,程序保密,无法进行更改,现只提供了vw2008(驱动压力)vw2010(提耙高度);v2014.0-v2014.7;v2015.0-v2015.2;v2000.0-v2000.1;这几个地址需要传输和控制,能否不通过更改200子站的程序,直接读取到300站里呢?急用哦~~静盼佳音!
最佳答案
如果S7-300与S7-200之间通过PROFIBUS DP现场总线通信方式,S7-200作为DP从站,必须采用EM277通信模块来实现,它是PROFIBUS专用模块,从站为S7-200+EM277组合体。方法如下:
首先必须安装EM277的GSD文件,步骤如下:在SIMAITC文件夹中有EM277的GSD文件“SIEM089D.GSD”(如果没有可以从西门子网站直接下载〕,然后在硬件组态界面中,选择菜单Options(选项)/Install New GSD,安装以后,在右边“Catalog”(硬件目录)中依次展开PROFIBUS DP/Additional Field Device(附加的现场装置)/PLC/SIMATIC/EM277 PROFIBUS DP。
PROFIBUS通信方式:硬件连接S7-300CPU的MPI端口与EM277的DB9端口通过PROFIBUS电缆利用PROFIBUS网络接头连接起来。在SIMATIC管理器中新建一个S7-300的项目,组态硬件,配置PROFIBUS(1)网络(设定传输速率默认1.5Mbits)和配置文件(DP),然后把EM277挂到PROFIBUS(1)网络上,把S7-200作为DP从站地址,在项目硬件组态界面中,依次展开右边“Catalog”(硬件目录):PROFIBUS DP/Additional Field Device(附加的现场装置)/PLC/SIMATIC,双击EM277 PROFIBUS DP,弹出“属性-PROFIBUS接口”对话框,将地址该为如“3”,单击“确定”按钮,分配DP从站的通信数据存储区,展开EM277 PROFIBUS DP,根据你的情况需要读写S7-200中V2000-2015地址双击“16 Word In/1 6Word Out”(每次主站S7-300接收为16个字节,送出的信息也为16个字);修改通信数据发送区和接区的起始地址,先选中PROFIBUS网络中”3“号站(EM277)下的接收和发送区,双击之,弹出”属性——DP从站“对话框,再在输入的启动地址中输入”2000“,输出的起始地址中输入”2000“,再单击”确定’按钮。然后执行“编译并保存,并把硬件组态下载到S7-300CPU中。,所以可以通过EM277模块直接读取V区数据在不更改200子站的程序情况下,直接读取到300站里。在通信前,必须要将EM277的”站号“选择按钮旋转到硬件组态设定的地址(这里是”3“),断电后新设定的地址才有效。
由于S7-200CPU支持MPI通信方式,所以S7-200与S7-300之间通信最简单方便的通信方式就是MPI,无须外加模块,而且S7-200与S7-300之间采用无组态的MPI连接,只需在S7-300主站侧通过直接调用SFC68和SFC67采用单边编程通信方式,无须修改S7-200从站的程序。方法如下:
硬件连接:把S7-300CPU的MPI端口(X1)与S7-200CPU的Port0之间通过PROFIBUS电缆利用两个标志网络接头连接起来。
组态S7-300CPU,设置主站的MPI通信参数(通信波特率为默认187.5kbit/s)和MPI地址(如”2“),执行”编译和保存“,并下载到S7-300CPU中;对于S7-200CPU,打开STEP7-Micro/WIN,选定工具栏上的”系统块“按钮,并双击之,在出现的对话框中,设置端口0的PLC地址为如”3“,波特率187.5kbit/s。硬件组态时,必须将S7-200CPU和S7-300CPU的波特率设置相等,此外,S7-300的硬件组态和S7-200PLC的系统块必须下载到相应的PLC中才能起作用。接下来,只需在S7-300直接调用SFC67和SFC68,通过简单编程就可以实现读取S7-200CPU中相应的数据。如想读取S7-300CPU中的数据,在调用SFC67时,可以利用指针寻址方式,在参数VAR_ADDR(数据类型)为Any)和RD分别设定S7-200和S7-300的对应地址即可。
提问者对于答案的评价:
谢谢了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc307787.html