技术论坛

 SIMATIC S7-1500与TIA博途软件的使用---连载61

返回主题列表
作者 主题

至圣

经验值: 11068
发帖数: 1023
精华帖: 21
楼主    2016-09-22 09:48:20
主题:SIMATIC S7-1500与TIA博途软件的使用---连载61

以下内容节选自机械工业出版社出版的西门子自动化技术丛书----《SIMATIC S7- 1500 与 TIA博途软件使用指南》, 作者崔坚。更多更详细的内容请您参考《SIMATIC S7- 1500 与 TIA博途软件使用指南》一书。

 

 

PROFINET IO系统的组态控制

8.5 PROFINET IO系统的组态控制

        组态控制不但可以应用于S7-1500中央机架上,还可以应用于ET 200MP和ET 200SP分布式I/O站点上。此外,组态控制也可以应用在PROFINET IO系统级别,实现CPU对所连接的分布式I/O站点进行再配置。类似于PROFIBUS-DP总线上站点的使用,CPU可通过指令禁用或使能某些从站,在使用PROFINET IO系统时,S7-1500 CPU也可以使用禁用或使能某些站点的方法,灵活地指定系统中的IO设备数量。不仅如此,S7-1500系统中还可以结合使用可选IO设备和修改网络拓扑的方式,实现对IO系统的重新组态。

8.5.1 软硬件要求以及实现原理

        IO系统的组态控制需要在TIA 博途V13  SP1以及固件版本 V1.7或更高的S7-1500 CPU中实现。与中央机架模块的组态控制(设备级组态控制)原理一样,所有需要组态控制的分布式I/O站点可以通过程序使能或禁用;由于站点的灵活配置,导致网络的拓扑结构发生变化,所以各PROFINET IO站点之间的以太网接口互联也必须通过编程进行修改。

8.5.2 IO系统的组态控制的数据格式

        程序通过固定的数据格式修改I/O站点的配置以及拓扑连接,数据格式参考表8- 2。

表8- 2  IO系统的组态控制的数据格式

8.5.3 IO系统的组态控制示例

        下面以S7-1500连接ET 200SP为例介绍组态控制的实现,如图8- 7所示,主项目中包含5个ET 200SP站点,其中站点device a不可更改,经过组态控制后,子项目中只有两个站点,分别为device a和device b。

        首先配置主项目,将包含5个I/O站点。在网络视图的“IO通信”标签栏中使能可更改的站点,如图8- 8所示,将站点device_b、IO device_3和IO device_4作为可选IO设备,由于device_a为固定站点,这里不作修改。

        使能可选IO设备后,如果需要通过程序重新定义端口互联,则还需要设置以太网端口的伙伴端口连接选项。

        打开拓扑视图,使用鼠标拖放功能连接CPU和固定站点device a的端口2,因为这个连接不会发生改变。在“拓扑概览”标签页下选择可以通过程序修改拓扑连接的端口,将其“伙伴端口”属性设置为“伙伴由用户程序设置”,如图8- 9所示。虽然device_a为固定站点,但是端口1需要连接其它可选设备,所以也必须设置为“伙伴由用户程序设置”。

        硬件配置完成后还需要编程。首先创建一个数据块,在数据块中按照表8- 2的格式增加变量,如图8- 10所示。

        在数据块中添加一个6个字的数组变量(必须是元素为字的数组),每一个字的含义如下:

        第一个字:控制数据记录版本,固定为16#0100.

        第二个字:可选设备的个数,由于只有设备device_b,这里为1.

        第三个字:可选设备的硬件标识即device_b的硬件标识,数据类型为Hw_Device,可以在系统常量中查找。可以将符号名称复制并粘贴到数据块中,也可以直接复制数值,例如十进制的268。符号名称的好处在于修改设备后,硬件标识符的值可能发生变化,而符号名称不变。

        第四个字:实际IO系统组态中使用的端口互连数。实际配置的连接从设备device_a的端口1连接到设备device_b的端口1,所以只有一个连接。

        第五个字:第一个端口互连,本地端口的硬件标识符。这里是device_a端口1的硬件标识,数据类型为Hw_Interface,与第三个字一样,可以在系统常量中查找。

        第六个字:第一个端口互连,伙伴端口的硬件标识符。这里是device_b端口1的硬件标识,数据类型为Hw_Interface,与第三个字一样,可以在系统常量中查找。

        最后需要在OB1中调用指令“ReconfigIOSystem”(位于路径“指令->扩展指令->分布式I/O”下)如图8- 11所示。

指令的参数如下:

REQ: 使能信号,为1使能。

MODE:控制模式,为1时,禁用 IO 系统的所有 IO 设备;为2时,根据数据记录设置 (CTRLREC) 重新组态 IO 系统;为3时,重新启用 IO 系统的所有IO设备。

LADDR:PROFINET IO 控制器接口的硬件标识符,这里为CPU的PROFINET接口的硬件标识符。

CTRLREC:用于控制 IO 系统的实际组态的数据记录,这里为图8- 10中的数据格式。

STATUS:结果/错误代码。

BUSY: 为1表示正在执行指令。

DONE:为1表示指令成功执行,如果REQ信号为0,则DONE信号也为0。

ERROR:为1表示指令已完成,但出现错误。

ERR_INFO:错误信息。

        指令执行时,先选择Mode=1,通过REQ位禁用所有IO设备;然后选择Mode=2,通过REQ位将数据记录传送到 PROFINET 接口,该接口通过 LADDR 寻址;最后选择Mode=3,通过REQ位重新启用 IO 系统的所有IO设备。如果CPU断电重新启动,则配置的信息丢失,必须重新执行Mode 1~3的过程,可以通过OB100中编写启动程序自动执行,示例程序可以参考光盘目录:示例程序->组态控制文件夹下的《组态控制》项目。

 

注意:

        如果IO设备带有设备名称并且与CPU中存储的设备名称不匹配时,连接不能建立。此时可以将IO设备通过联机在线恢复工厂设置,也可以在组态时使能IO控制器属性中“高级选项”->“接口选项”中的“允许覆盖所有已分配IP设备名称”,IO控制器将强制分配设备名称并建立连接,这对于OEM最终用户的使用将更加方便。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。