带IP访问保护功能的以太网CP,可以防止未经授权就可访问LAN(本地局域网)。通过在CP的属性对话框中定义一个允许访问的IP地址列表来实现该功能(图1)。每当CP接收到以太网上的一条消息,就会检查发送者的IP地址是否在访问列表中。如果IP访问列表中没有发送者的IP地址,消息就被丢弃, 发送方不会收到任何回应消息。如果IP访问控制列表中包含发送者的IP地址,也就是说,它具有访问授权,消息就会被转发并处理。例如,仅在配置中加入经过授权的编程设备IP地址段,这样位于此IP地址段外的编程设备就不能通过CP连接CPU。这个功能本来是保护未授权的保护的,但如果配置错误,有的时候也会适得其反。下面就讲一个热线上处理过的问题。

图1
Customer:您好,工程师,我的CP343-1模块和上位机通信连不上,我用PING测试也不通。
Engineer:您的S7-300 CPU和CP343-1是什么状态,是否有红灯。
Customer:没有红灯,都是在运行状态,只有DC5V和RUN灯亮。
Engineer:您先确认IP地址设置的是否正确,计算机和CP卡都在一个网段。
Customer:这些都不用问啦,我现场网络里有多个S7-300站,都有CP343-1在一个网络里。我拿着笔记本,同一个网线逐个一对一ping,只有这个ping不通,真是奇了怪了。
Engineer:都没有问题,那您的这个硬件配置是否下载过呢?
Customer:没问题的,我刚刚用编程电缆下载过的。
Engineer:那您能通过CP343-1下载吗?
Customer:不能,下载的时候选择可访问节点里面,我可以浏览到IP地址,但是下载提示我不能建立连接。
STEP7不能通过CP343-1在线,但是还能浏览到IP地址,难道是模块坏了?只有先用NCM诊断一下了。
Engineer:您现在可以通过编程电缆在线吗?
Customer:可以。
Engineer:好的,打开硬件配置,双击CP343-1模板,在Diagnostics属性页中有个Run按钮,您按一下。
Customer:好的,弹出一个NCM S7 Diagnostics画面。
Engineer:好的,您把这里面的信息逐条告诉我。
。。。。。
发现问题了,在CP343-1的NCM在线诊断中显示,这个CP343-1设置了IP访问保护,而且可访问IP地址列表中两个IP地址,分别是192.168.0.135和192.168.0.141(如图2)。
图2
这个设置就导致了CP343-1只和IP地址为192.168.0.135和192.168.0.141的对象进行通信响应。而客户的计算机IP为192.168.0.200不在允许访问的地址内,当然就ping不通啦。
可是,这两个访问地址列表是怎么加上去的呢?和客户仔细核对整个系统的配置,发现了原因。首先,客户的CP343-1设置中激活了IP访问保护功能,但是没有添加IP访问控制列表(如图3)。这样的设置结果是虽然激活了IP访问保护功能,但是由于IP访问控制列表是空的,所以所有 IP地址都可以访问CP卡。
图3
检查发现,在NetPro中这个S7-300站配置了两个通过CP343-1访问其他S7-300站CP343-1的S7双边连接,通信对象的IP地址分别是192.168.0.135和192.168.0.141,正好就是NCM诊断中看到的两个IP(图4、图5)。
图4

图5
原来CP343-1的IP访问保护功能激活后为了不影响NetPro中已配置的通信连接,编译保存时会自动将使用IP协议的通信连接伙伴的IP地址添加到访问控制列表里。
由此可还原整个事件,项目中虽然激活了IP访问保护,由于没有填写任何IP地址,访问保护功能不会限制任何IP地址对CP卡的访问,但是存在两个与其他设备通讯的S7的通信连接,系统将通信伙伴IP地址自动添加访问列表中,这就导致了,本来没有IP地址被限制访问变成了只允许这两个IP地址访问。所以计算机也就PING不通这个CP343-1。解决办法就是修改CP343-1的属性设置,去掉IP访问保护功能或者将需要访问CP的计算机的IP添加到访问列表当中。
更多的IP访问列表的信息请参考下面网页
http://support.automation.siemens.com/CN/view/zh/17662057