传统的IP通信有两种方式,一种是在一台源 IP 主机和一台目的 IP 主机之间进行即单播
unicast ;*二种是在一台源 IP 主机和网络中所有其它的 IP 主机之间进行即广播broadcast 。如果要将信息发送给网络中的多个主机而非所有主机则要么采用广播方式要么由源主机分别向网络中的多台目标主机以单播方式发送 IP 包。采用广播方式实现时不仅会将信息发送给不需要的主机而浪费带宽也可能由于路由回环引起严重的广播风暴,采用单播方式实现时由于 IP 包的重复发送会白白浪费掉大量带宽也增加了服务器的负载,所以传统的单播和广播通信方式不能有效地解决单点发送多点接收的问题。
IP 组播是指在 IP 网络中将数据包以尽力传送(best-effort) 的形式发送到网络中的某个确定节点子集这个子集称为组播组multicast group。IP 组播的基本思想是源主机只发送一份数据这份数据中的目的地址为组播组地址组播组中的所有接收者都可接收到同样的数据拷贝并且只有组播组内的主机目标主机可以接收该数据网络中其它主机不能收到。组播组用 D 类 IP 地址224.0.0.0~239.255.255.255 来标识。IP 组播技术有效地解决了单点发送多点接收的问题,实现了 IP 网络中点到多点的高效数据传送,能够大量节约网络带宽降低网络负载。
根据协议的作用范围组播协议分为两种,一种主机-路由器之间的协议即组播成员管理协议,另一种是路由器-路由器之间协议主要是各种路由协议。组成员关系协议包括 IGMP 互连网组管理协议;组播路由协议又分为域内组播路由协议及域间组播路由协议。为了有效抑制组播数据在二层网络中的扩散引入了 IGMP Snooping 等组播协议。
IGMP即Internet Group Management Protocol。IGMP 协议运行于主机和与主机直接相连的组播路由器之间。IGMP 实现的功能是双向的,一方面通过 IGMP 协议主机通知本地路由器希望加入并接收某个特定组播组的信息;另一方面路由器通过IGMP 协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。IGMP有3个版本。对于IGMPv2有3种类型的报文,组成员查询、组报告消息、特定组的离开消息。
IGMP Snooping 即IGMP 侦听 ,其主要作用是在交换机上完成二层组播的动态注册。它使用的是IGMP 报文 ,IGMP 报文格式可以在RFC1122(IGMP 版本1)和RFC2236(IGMP 版本2)中找到。在较早的组网环境中,并没有以太网交换机的参与,路由器一般直接和主机相连,它们之间通过标准的IGMP 协议来实现组播功能。而目前IGMP Snooping 则不同,它的实现需要主机和交换机的共同参与。
SCALACNE X 300/400支持IGMP v2和IGMP Snooping协议来实现组播通讯。SCALANCE X 414-3E的组播通讯,需要在交换机和主机之间实现IGMP,通过IGMP Snooping,侦听主机和交换机传送的不同类型的IGMP 报文来动态维护二层组播组,也就是建立二层组播地址和端口号的之间关系的组播表。
组播组态:
网络组态由两台交换机Switch A和Switch B组成。通过Port5.1相连。
组播源为Host1。连接到Switch A的Port5.2。
Host2和Host3用于接收组播信息。分别连接到Switch B的Port10.1和Port11.1。
组播程序使用VLC媒体播放器。
Switch A组态:
序号
|
组态步骤
|
1
|
通过IE浏览器打开交换机XA的Web页面,输入用户名和密码,均为“admin”。点击目录树Switch,使能IGMP Snooping。
|
2
|
在目录树Switch ? Multicast group ? IGMP中,使能IGMP Query。
|
|
|
Switch B组态:
序号
|
组态步骤
|
1
|
通过IE浏览器打开交换机XB的Web页面,输入用户名和密码,均为“admin”。点击目录树Switch,使能IGMP Snooping。
|
Host1组播源组态:
序号
|
组态步骤
|
1
|
通过File菜单,打开VLC媒体播放器的Wizard。依次按照步骤,选择“Stream to network”,选择要播放的音频或视频流。然后,选择组播,并输入组播地址,这里自定义组播地址为239.255.0.1。然后依次选择默认值,完成设置。
|
|
西门子5.7英寸显示屏
|
Host2和Host3客户端组态:
序号
|
组态步骤
|
1
|
通过File菜单,打开VLC媒体播放器的Open Network Stream。在UDP/RTP Multicast 的Address中添加组播地址239.255.0.1。其它保持默认不变。
|
|
|
在目录树Switch?Multicast Group,察看未组播通讯前,交换机的组播地址表的信息。其中01-00-5E-7F-FF-FA是计算机默认的组播地址,并不是自定义的组播地址。
同样在该目录树下,组播源开启,客户端Host2和Host3接收流媒体。察看交换机的组播地址表的信息。其中组播MAC地址01-00-5E-7F-00-01,就是IP组播地址239.255.0.1的映射。
注意:
在组播的客户端全部离开后,同时在IGMP Snooping Aging Time结束后,注意及时关闭组播源,否则组播数据帧会泛洪到所有网络端口,造成网络负担过重,甚至造成堵塞。
1 概述
在工厂自动化控制系统中各设备必须保证具有相一致的时间参考,以便能够为归档信息及报警等分配一个清晰的时间戳。对于数据归档及故障分析建议使用时间同步功能,将各设备同步到一个标准的时间。
时间同步基于标准的世界时间 UTC (Universal Time Coordinated),对应于格林尼治标准时间。在自动化系统中,控制器,操作面板及监控系统或 SCADA 系统均可成为主时间。
SIMOTION 与西门子触摸屏的时间同步可通过调用SIMOTION的系统功能块及触摸屏编程软件的设置来实现。
2 功能块 FBSyncSimotionToHMI介绍
功能块“FBSyncSimotionToHMI”允许用户将Simotion 系统平台的日期及时间自动与西门子人机界面的系统时间进行同步。
2.1 操作模式
通过WinccFlexible的区域指针“Area Pointer”将HMI的系统时间及日期同时传送到Simotion 平台。为了正确使用区域指针,在Simotion侧需要准备好数据。
(1) 通过输入参数“execute”的上升沿执行此 FB 功能块。
(2) 将任务号41写入至HMI的“Job mailbox”。
(3) 通过区域指针类型“date / time”,HMI 为FB提供日期及时间。
(4) 从传送的时间中提取单独的小时,分及秒。
(5) 从区域指针传送过来的值转换为类型为“TIME OF DAY”数据类型。
(6) 从传送的日期中提取单独的天,月及年。
(7) 通过帮助功能块“FBHelpSyncSimotionToHMI”,使用数学公式计算公历日历,计算闰年,计算从控制器开始日期 (01.01.92) 经过的天数。通过 Marshalling功能,将类型为“DINT”的数据转换为类型为“DATE”的数据。
(8) 通过类型转换将数据类型为“TIME_OF_DAY”及“DATE”组合为“DATE_TIME”。
(9) 调用系统功能块,将计算值设置为真实的时钟 (RTC) 。
集成至系统应用中
为了使用功能块“FBSyncSimotionToHMI”,在Simotion及WinCC Flexible中必须完成下述工作:
? 在 Simotion中:
– 创建全局数组:类型为 WORD的 4个元素,代表写入至HMI的 “Job mailbox” 的任务号。
例如:gabHMIJobBox : ARRAY[0..3] OF WORD;
– 创建全局数组:类型为 WORD的 6个元素,代表“date / time”。
例如:gabdateAndTime : ARRAY[0..5] OF WORD;
? 在WinCC Flexible中:
区域指针“date/time”及“Job mailbox” 必须与Simotion创建的全局变量相连接。
上述步骤完成后,Simotion平台的系统时间及日期可以被HMI设备同步/校准。
功能块必须在循环任务中调用。
2.2功能块 LAD 框图
图1.
输入/输出参数:
元素
|
参数类型
|
数据类型
|
初始值
|
描述
|
execute
|
IN
|
BOOL
|
FALSE
|
开始同步
|
HMIJobBox
|
IN/OUT
|
ARRAY [0..3]OF WORD
|
|
连接“Job mailbox”
|
dateAndTime
|
IN/OUT
|
ARRAY [0..5]OF WORD
|
|
连接 “date/ time”
|
systemDateAndTime
|
OUT
|
DT
|
|
用于RTC的Date / time
|
表1.
3 在 SIMOTION中的编程
3.1导入库文件
图2.
3.2创建变量
区域指针及“Job mailbox”必须在 SIMOTION 中定义为全局变量,本例中定义在 “TimeSyn”单元中:
图3.
在 SIMOTION 中调用时钟同步功能块时需要此区域指针。当HMI控制器作为主时间时,区域指针用于从HMI传递日期及时间至控制器。SIMOTION在所需时间间隔内周期性地读取数据并且同步自已的时钟。
注意:不要配置一个较短的循环周期用于日期/时间区域指针,因这将对操作面板的性能产生负面影响。建议获取数据间隔为10分钟。
3.3 功能块“FBSyncHMIToSimotion”
功能块“FBSyncHMIToSimotion”可用于将Simotion平台的系统日期及时间与HMI的日期及时间进行同步,必须在循环任务中调用,用LAD方式编程如下:
图4.
4 在WinCC flexible中的设置
4.1通讯设置
? .选择项目 → Operator panel → Communication → Connections
? .创建Simotion与HMI的连接关系:
图5.
4.2区域指针设置
选择“Area pointer”标签并从 SIMOTION 程序单元中选择变量进行“Date/Time” 及“Job mailbox”的连接:
图6.