实现S7站间通讯的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

站间通讯的方法
○1如果是一个比较大的项目,有多个控制站,此时整个项目的组态都在工程师站上。

可以采用建立S7双边通讯的方式。

在NETPRO中建立本站与各个站之间的通讯关系,注意,必须用鼠标点击站的CPU位置,右键选择INSERT NEW CONNECTION。

如图1和2所示。

图1 建立S7连接
图2 建立完成后
图3 设置S7连接的属性
建立好后需要对连接进行设置,本地ID是很关键的参数和后边建立通讯程序必须填写正确。

INTERFACE选中PLC之间连接的接口即可。

ADDRESS DETAILS 点开后如图4所示
图4 详细地址
这个表格在博途程序中也可以用到,而且还可以设置,而STEP7中直接就生成了。

这点后边会有博途中的介绍。

接下来就是编程了,用到SFB12和SFB13两个系统自带功能块。

如图5所示。

图5 SFB12编程举例
注意管脚使用的含义。

REQ接脉冲信号,一个脉冲发送一个数据,所以必须发送持续的脉冲才能持续发送数据。

ID为本地CPU的LOCAL ID的数值,即前边提到的。

R_ID为对方CPU的LOCAL ID,在对方CPU进行通讯组态时可以看到此ID号。

SD_1为发送数据区,输入时必须注意空格。

如本例为P#DB1000.DBX0.0 BYTE 4,注意DBX0.0和BYTE之间有空格,以及BYTE 和4之间也有空格。

在输入的时候不要出错。

这里DB也可以换成M地址,如P#M1.0 BYTE 1也是可以的。

而到了博途的时候这些都不需要自己手动输入了,可以直接填入地址和位数即可自动生成,防止输入有误。

如图6所示。

可见在博途中调用通讯块儿时,可以设置连接参数和块参数,块参数中可以直接输入,需要的东西,比如REQ的控制变量。

,读取区域的起始地址,长度和数据格式等。

必须参数正确才可以进行下载运行,这些地方博途比STEP7有很大的进步。

还有在STEP7中Netpro中建好连接后,可以单独将连接下载,不需要停机。

可以单独启用连接和断开连接。

菜单栏中可以很轻易的找到相关选项。

图6
○2如果项目需要做大的集成,而需要被集成的设备都自带控制系统,可以采用第二种方式。

即将各设备作为智能从站。

如图7所示。

图7
如图7所示,西门子的博途软件可以将S7-300,1200,1500等PLC组态成智能I/O设备,进而可以下挂到大系统的PLC总线上进行Profinet通讯。

在传输区域中添加需要和大系统PLC交互的数据区,然后生成GSD文件。

其他厂家的PLC如ABB、倍福等都可以生成GSD和西门
子的PLC进行通讯。

大系统的PLC下挂各个智能I/O站如图8所示。

图8
如图8所示。

其中包含了其他非西门子厂家PLC生成的GSD文件。

而西门子生成的GSD文件下挂后全部显示为DP-NORM名称。

而其实是挂在了Profinet总线上。

当然也可以作为DP 的从站挂到DP总线上。

在主站CPU编程时,使用从站地址时必须和从站定义的地址相对应。

且如果直接调用传输区的位地址是不可以的,必须先用MOVE指令将PIB或PIW等过程影响区转到MB或MW 地址或者DB地址中可以使用。

而如果直接调用非位地址如BYTE,WORD等时可以直接使用。

PN总线组态时是使用设备的名称进行寻址的,所以在填写设备名称时必须按照规则填写,且必须各自唯一。

使用ASSign device name进行设备名称的分配和确认。

只有设备名称为绿色的对勾后才证明设备可用,如图9所示。

图9
○3如果需要做一个大系统,而各个PLC之间都是互相独立的,各自不知道对方的配置,在需要交换的数据不是很多的情况下,如果需要一个PLC需要对各个系统进行串联,协调时,可采用建立S7单边通讯的方式。

此方式下可以将各个系统所需要对其他系统产生作用的变量由一个公共的PLC进行读取和写入,从而产生联锁关系。

这种方式下仅需要在公共系统的PLC进行单边编程和组态即可,只需按照IP地址对各个系统进行访问即可。

首先在博途中新建S7连接,如图10所示。

在网络视图中选中连接选项,找到S7连接选项,然后选中CPU,右键即可选择添加新连接。

如图10所示,注意使用的端口须与实际PLC的连接端口一致。

本地ID即LOCAL ID在编程时需要用到。

都选择好点击添加即可建立一个新的S7连接。

然后选中新建的S7 连接查看属性。

常规选项中设置连接名称,伙伴PLC的IP 地址等信息。

然后在地址详细信息中需要修改机架插槽和TSAP的值。

具体可见西门子官方的说明。

300系列PLC机架号选择2即可。

如果为1200或1500则选择1.
图10
图11
图12
图13
然后就是编程,与双边通讯类似,这里需使用PUT和GET指令。

如果通信伙伴有1200或者1500,需要在CPU的属性中防护与安全-连接机制中的允许来自远程对象的PUT/GET通信访问进行打勾。

然后在编程时调用PUT和GET指令,以GET指令为例,如图14所示。

图14
作用是从伙伴CPU指定的地址读取数值并存到本地CPU指定的地址中。

与SFB13类似,REQ 管脚接脉冲信号,每发一个脉冲读取一个字节。

ID为本地CPU的地址,在组态时自动生成。

ADDR_1~4为伙伴CPU要读取的地址。

此例中读取的都是来自DB块中的地址,也可以为M 或者I地址等。

RD_1~4为本地CPU中存取的地址。

可以放到DB中进行存储。

右侧输出为状态指示,可以建立相关的变量进行连接,从而可以进行监控。

将各个子系统中读取的数据进行逻辑编写,然后将各个站需要的联锁或者其他站的数据由公共的PLC使用PUT指令进行写入,这样就起到了协调的作用。

以上就是常用的西门子PLC之间直接进行通讯的几种方式。

根据工程状况进行选择使用,可以更好的完成控制需要。

相关文档
最新文档