西门子S7-400CPU模块核心供应商6ES7414-5HM06-0AB0

供应商
湖南西控自动化设备有限公司
认证
西门子
授权代理商
PLC
一级代理商
德国
售后保障服务
联系电话
17838383235
手机号
17838383235
经理
徐嘉泉
所在地
中国(湖南)自由贸易试验区长沙片区开元东路1306号开阳智能制造产业园(一期)4#栋301
更新时间
2024-07-06 08:00

详细介绍

siemens tia使用opc ua完成2台plc通讯


在这篇文章中,通过将 s7-1500 设置为具有专用服务器接口和用户身份验证的 opc ua 服务器来学习如何使用 opc ua在两个 plc 之间进行通信。

opc ua 是用于工业通信的开放式数据交换标准。它描述了一种用于从机器到机器或从机器到 pc交换数据的协议。opc ua 是 open platform communications unified architecture的缩写,顾名思义,是一种独立于制造商、系统供应商和编程语言的通信协议。在这个演示中,我们将学习如何实现 opc ua 用于 plc 到 plc 的通信,也称为水平通信。但这并不是 opcua 的唯一应用——它还用于 plc 与更别系统(如 scada 和 mes)之间的通信,也称为垂直通信。

在更新的固件版本中,s7-1500 plc 还具有内置的 opc ua 客户端。此 opc ua客户端可用于与条码扫描仪和打印机等从属设备进行垂直集成。使用 opc ua 与这些设备通信的 plc可以从条形码扫描仪检索条形码或将数据发送到打印机进行打印。


opc ua 的优势

opc ua 服务器接口opc ua 的主要优势在于它独立于制造商。opc ua提供了一种在任何制造商制造的设备之间交换数据的开放方式,而无需使用网关设备将通信从一种专有格式转换为另一种。许多制造商支持modbus/tcp和tcp/ip等其他通信协议 ,但opc ua 正迅速成为工业通信的通信协议。由于 opc ua 基于tcp/ip,因此可通过以太网进行路由。这意味着不在同一子网中的设备可以通过使用路由器相互通信。其他工业协议(如i-device通信)受到限制,因为它们无法通过以太网路由,因此只能用于同一子网中的设备之间的通信。opc ua具有内置诊断功能,因此可以在用户程序中检测和处理通信错误。诊断对于在监控系统时解决通信问题也很有用。与旧协议不同,opc ua 支持使用优化的数据块进行数据交换。这意味着您可以遵循 siemens 的建议,在两个plc 之间进行通信时专门在用户程序中使用优化的数据块。虽然 opc ua 不是像put/get那样的单面通信协议,但服务器 plc 不需要编程。服务器 plc只是将数据提供给第三方。这使得使用 opc ua 在两个 plc 之间设计数据交换变得非常容易。关于从服务器 plc 公开数据的主题,opc ua 支持使用配套规范要求。opc配套规范是一种订购数据的方式,以便以结构化格式将其提供给客户端。当客户端浏览服务器公开的数据时,数据以结构化方式呈现,标准数据采用标准格式。配套规范通过确保仅公开特定数据来帮助在opc ua 连接中提供一些安全性。当然,由于 opc ua 是一种现代协议,因此 opc ua 通信可以通过现代互联网标准安全性得到保护。可用于opc 通信的安全机制包括数据的加密和数字签名,以确保传输的数据不会被恶意第三方拦截、读取或修改。

opc ua 的缺点

由于 opc ua 是一种现代的跨平台通信协议,因此使用 opc ua 进行 plc 到 plc通信几乎没有缺点。我能想到的唯一缺点不是与 opc ua 本身有关,而是与在 tia portal 中启用 opc ua服务器的方式有关。在 tia portal 中启用 plc 中的 opc ua 服务器时,默认情况下,plc中的所有数据都会在没有安全性的情况下公开。这意味着在您启用 opc ua 后,任何 opc ua 客户端都可以立即连接到 plc并浏览和修改该 plc 中的任何数据,包括数据块、实例数据块、输入、输出和内存位。这实际上比 put/get 等传统通信协议更糟糕,因为 opc ua 象征性地公开来自 plc的数据。由于数据是象征性地公开的,因此恶意行为者可以象征性地浏览标签,以更清楚地了解他们正在访问的确切数据。好消息是,正确设置后,opc ua 是一种非常安全的通信协议。在接下来的部分中,我将向您展示如何设置 opc ua通信以在两个 plc 之间交换数据,以及如何保护该通信以确保恶意行为者不会干扰通信中涉及的系统。

演示

在此演示中,两个 plc 将通过 opc ua 交换数据。plc_2 充当 opc ua 服务器,将数据公开给plc_1,即 opc ua 客户端。随着演示的进行,我们将逐步提高通信的安全性。在 tia portal 中,我创建了一个新项目,添加了两个 plc,并运行了安全向导。

配置服务器

在 plc_2 中,我将启用 opc ua 服务器。由于 opc ua 是许可产品,我需要在 properties> general > runtime licenses 中选择我为 plc购买的运行时许可类型。在下拉列表中选择购买的许可证类型。目前,您无需提供实际购买许可证的证明,尽管这在未来可能会发生变化。所需的许可证类型取决于您使用的 cpu。您可以在此sios 条目中查看 plc需要哪种类型的许可证。在 tia portal 中选择 opc ua 运行时许可证接下来,我通过激活“属性”>“常规”>“opc ua”>“服务器的可访问性”下的复选框“激活opc ua 服务器”来启用 plc_2 中的 opc ua 服务器。将弹出一条警告,强调必须正确保护 opc ua服务器。仔细阅读后单击“确定”关闭此警告。激活 opc ua 服务器如果您向下滚动到此窗口的服务器地址部分,您将看到我们有两个 opc ua 服务器地址。这是因为此 plc有两个端口,并且为这两个端口启用了 opc ua 服务器。opc ua 服务器地址

安全检查 #1

现在,opc ua 服务器已启用。任何 opc ua 客户端都可以浏览到该 plc 并访问通过 opc ua服务器公开的数据。这包括输入、输出、内存地址和 db。为了演示这一点,我在 plc 中创建了一些输入和输出,并在硬件配置中启用了时钟字节。下载这些更改后,我启动了免费的opc ua 客户端uaexpert来浏览 plc。在uaexpert 中,我单击服务器> 添加并切换到选项卡。在这里,我可以输入我从 plc_2的硬件配置中复制的 opc ua 服务器的端点 url。单击“确定”添加服务器。在 ua expert 中配置 opc ua 服务器opc ua 服务器被添加到左侧窗格中的项目树中。右键单击服务器并选择连接以连接到 opc ua服务器。连接到 opc ua 服务器弹出一个错误窗口,通知我们 plc_2 opc ua服务器提供的安全证书存在问题。单击信任服务器证书以忽略这些警告。信任 opc ua 服务器证书后,单击继续连接到 opc ua 服务器。单击继续连接到 opc ua 服务器通过连接到 opc ua服务器,我们可以浏览左侧地址空间窗格中公开的数据。您可以在这里看到,我们可以象征性地浏览公开的数据,并查看在 plc中配置的所有输入、输出和内存区域。我已经选择了输入、输出和内存位并将它们拖到 ua expert 的中心窗格中。浏览 opc ua 服务器中的标签现在我可以监控这些标签的值了。我还可以通过双击它们来修改标签的值。在这里,您可以看到我已将输出 修改为 true。从 opc ua 服务器写入标签这是一个非常危险的情况——任何 opc ua 客户端都可以连接到这个 plc来查看和修改任何数据。事实上,这种情况不如使用put/get安全,因为 opc ua 象征性地公开数据,因此恶意行为者很容易通过opc ua 客户端找到将对系统造成大破坏的数据。

配置服务器接口

我们可以通过仔细选择向 opc ua 客户端公开哪些数据来提高 opc ua 服务器的安全性。为此,我们需要在 plc_2 的硬件配置中禁用标准服务器接口。标准服务器接口是将来自 plc 的所有数据公开给opc ua 客户端的服务器接口。您可以在属性 > 常规 > opc ua> 标准服务器接口(simatic命名空间)中禁用此服务器接口:禁用标准 simatic 服务器接口关闭此服务器接口后,我们可以创建一个新的服务器接口,将 plc 中的特定数据公开给 opc ua客户端。要添加新的服务器接口,请双击项目树中 plc_2 > opc ua 通信 >服务器接口下的添加新服务器接口按钮。为您的服务器接口命名,然后单击确定以创建接口并打开服务器接口编辑器。添加新的 opc ua 服务器接口在 server editor 窗口中,您有两个窗格。在左窗格中,您有 opc ua服务器接口命名空间。此命名空间定义了 opc ua 客户端可访问的所有数据。opc ua客户端只能浏览此命名空间中的数据。在右侧,您可以将项目的 opc ua 元素添加到 opc ua服务器接口命名空间中。要将项目中的元素添加到 opc ua服务器接口命名空间,您只需将它们从左侧拖放到右侧窗格即可。在此示例中,我已将光电管输入和时钟位标记添加到服务器接口名称空间。向 opc ua 服务器接口添加标签我将下载这些更改并切换回uaexpert opc ua 客户端以查看这些更改。

安全检查 #2

回到uaexpert,我已经断开并重新连接到opc ua 服务器。现在我看到数据不再直接通过 plc公开,而是我们选择公开的标签通过名为 server_interface_1 的新文件夹公开。这是我们在 tia portal中创建的服务器接口命名空间。当您展开此文件夹时,您会看到它包含我们选择公开的所有数据。再一次,我们可以监控和修改通过这个服务器接口命名空间暴露的数据的值。opc ua 客户端中的服务器接口命名空间现在,我们通过限制向 opc ua客户端公开的数据的数量和类型,使连接更加安全。在下一节中,我们将通过实施身份验证来进一步提高连接的安全性,以便只有具有正确用户名和密码的设备才能连接到服务器。

配置身份验证

访客身份验证允许任何客户端访问 opc ua 服务器,而无需在密码中提供用户名。为了实现身份验证,我们希望在 opcua 服务器中禁用访客身份验证。您可以在 tia portal 中通过取消激活“常规”>“opcua”>“访客身份验证”下 plc 属性中的“启用访客身份验证”复选框来执行此操作禁用 opc ua 服务器的访客身份验证在本节下方,我们可以通过激活“启用用户名和密码身份验证”复选框来启用用户名和密码身份验证。使用用户名和密码启用身份验证后,您可以定义opc 客户端将用于连接到 opc 服务器的用户名和密码。为 opc ua 服务器启用身份验证

安全检查#3

将更改下载到 plc 后,我可以返回到uaexpert 并断开并重新连接到 opc ua服务器。这次当我尝试连接时,我看到抛出“badidentitytokeninvalid”错误。这是因为 opc ua服务器不再允许访客身份验证badidentitytokeninvalid 错误我们可以在服务器连接属性中配置用于连接到 opc ua 服务器的用户名和密码。要访问服务器连接属性,请右键单击opc ua demo 并选择 properties。服务器连接属性在身份验证设置部分,您可以提供用户名和密码以连接到 opc ua服务器。您可以选择存储这些凭据,这样您就不必在每次连接到 opc ua 服务器时都提供它们。ua expert 中的身份验证设置为 opc ua server提供正确的用户名和密码后,您可以再次连接、浏览服务器接口命名空间中的标签、监控和写入标签值。现在我们已经采取措施保护 opc ua 服务器,让我们配置 opc ua 客户端,看看我们如何使用 opc ua进行 plc 到 plc 的通信。

配置 opc ua 客户端

在 plc_1 中,我在常规 > opc ua > 客户端下的 plc 属性中激活 opc ua客户端。激活 opc ua 客户端同样,我们必须在 plc 属性中的 general > runtime licenses > opcua 下指定购买的许可证类型。就像 opc ua 服务器有一个服务器接口一样,opc ua 客户端也有一个客户端接口。通过双击项目树中 plc_1> opc ua 通信 > 客户端接口下的“添加新客户端接口”,为 plc_1 添加客户端接口。名为client_interface_1 的客户端接口会自动创建并打开。添加客户端接口在编辑器的底部窗格中,提供 opc ua 服务器的 ip地址和端口(如果已修改)。您将看到带有新信息的服务器地址更新。配置服务器 ip 地址在“安全”选项卡中,向下滚动到“用户身份验证”部分。在用户身份验证下拉菜单中,选择“用户名和密码”。在以下两个框中,提供您之前在opc ua 服务器中配置的用户名和密码。为 opc ua 客户端设置安全性完成这些更改后,将它们下载到 plc。

配置数据交换

接下来,我们可以指定 opc ua server 和 client 之间的数据交换。在“opc ua客户端接口”树中,您可以看到有各种数据访问选项,包括读取列表、写入列表和方法列表。读取列表包含从 opc ua服务器读取的数据,写入列表包含写入 opc ua 服务器的数据。在此演示中,我们将从 opc ua服务器读取数据。双击“添加新阅读列表”以创建并打开一个名为“阅读列表_1”的新阅读列表。创建一个新的阅读列表现在,我们要将来自服务器接口命名空间的数据添加到读取列表中。我们可以通过以 xml 格式从 plc_2 导出服务器接口名称空间并将其导入回 plc_1中的客户端接口来实现此目的。如果与服务器的在线连接可用,一个更简单的选择是浏览 opc ua 服务器接口命名空间的数据。为此,请从opc ua 服务器接口源下拉列表中选择在线 [],然后单击“在线访问”以浏览 opc ua 服务器接口。浏览 opc ua 服务器接口在打开的对话框中,粘贴 opc ua服务器的地址,然后单击“查找所选服务器”。找到服务器后,选择安全级别“无安全性”并指定正确的用户身份验证类型以及用户您之前创建的名称和密码。后,单击“连接”以连接到opc ua 服务器。连接到 opc ua 服务器在弹出框中,单击“是”选择信任 opc ua 服务器的证书。如果一切顺利,您应该能够在 opc ua 服务器界面窗格中看到 opc ua服务器公开的数据。从这里,您可以将要使用的数据拖到 opc ua 客户端的读取列表中。在此示例中,我将 clock_1hz布尔标记带到客户端的读取列表中。将数据添加到 opc ua 客户端读取列表后,我们需要轮询数据。为此,我将使用指令 > 通信 > opc ua > opc ua 客户端下的opc_ua_readlist_c 块。这是一个紧凑的通信块,这意味着它与 opc ua服务器建立连接并处理数据交换。在 main ob 中创建对指令的调用并启动配置向导。opc_ua_readlist_c 的配置向导按照配置向导中的步骤参数化模块并设置 req 引脚以循环轮询来自服务器的数据。如果配置正确,您应该会看到块更改值的status 引脚以表明正在接收数据。完成参数化 opc_ua_readlist_c现在,如果我跟踪从服务器接收到的数据(在“client interface_1_data”.“readlist_1”.variable.clock_1hz 中可用),我可以看到正在从 opc ua服务器接收和更新数据opc ua 数据跟踪

总结

在这篇文章中,介绍了 opc ua,并解释了使用 opc ua 作为 plc系统中水平和垂直通信的通信协议的一些优点和缺点。展示了如何使用 opc ua 在两个 plc 之间进行通信。在此过程中,学习了如何将 s7-1500 plc 设置为opc ua 服务器,以及如何使用服务器接口和用户身份验证正确保护服务器连接。还学习了如何将 s7-1500 plc 配置为 opc ua 客户端以及如何使用来自服务器的数据


西门子PLC代理,西门子变频器代理,西门子伺服电机代,西门子工控机代理,西门子触摸屏代理

展开全文

我们其他产品
我们的新闻
咨询 在线询价 拨打电话