前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >S7-1200 OPC UA 服务器配置方法

S7-1200 OPC UA 服务器配置方法

作者头像
科控物联
发布2022-03-29 17:09:06
8.7K1
发布2022-03-29 17:09:06
举报
文章被收录于专栏:科控自动化

1 S7-1200 OPC UA 服务器方法概述

OPC UA 方法是“远程过程调用”的实现,为不同通信节点之间的交互提供了有效机制。该机制提供作业确认和反馈值,因此用户无需再编程握手机制。

通常,OPC UA 方法的工作原理与运行系统中由外部 OPC UA 客户端调用的受专 有技术保护函数块的原理类似。OPC UA 客户端仅“监视”已定义的输入和输出。函数块、方法或算法的内容对 OPC UA客户端不可见。OPC UA 客户端接收成功执行的反馈以及函数块(方法)返回的值;如果执行不成功,则收到错误消息。

S7-1200 CPU固件从V4.5版本开始, TIA Portal从V17版本开始,可以通过指令编程的方式提供OPC UA服务器方法,OPC UA 服务器方法指令如图1所示。

图1 .OPC UA 服务器方法指令

OPC UA 服务器方法的指令编程、程序调用以及客户端调用方法后执行过程,如图2所示。

图2.编程、调用及执行过程

OPC UA 客户端向OPC UA 服务器调用服务器方法。

S7-1200 中的OPC UA 服务器,需要分别跟OPC UA客户端和S7-1200的OPC UA 服务器方法指令交互信息。交互的信息包含命令、状态及服务器方法的输入/输出参数等。

S7-1200要实现OPC UA服务器方法功能,需要在FB块中编程。在FB中以多重背景或者参数实例的方式,按照先后顺序分别调用OPC_UA_ServerMethodPre和OPC_UA_ServerMethodPost指令。在前述两个指令中间,编写要实现的某些功能或者算法。在FB块的静态变量中定义服务器方法的输入和输出参数。OPC_UA_ServerMethodPre用于向OPC UA 服务器查询OPC UA 客户端是否已经调用服务器方法。如果已经调用方法,并且服务器方法具有输入输出参数,服务器方法会收到来自客户端上输入的输入参数。使用OPC_UA_ServerMethodPost参数通知指令,通知OPC UA服务器方法是否已经调用完成。如果用户程序已经成功执行,通过相关参数通知OPC UA 服务器。OPC UA 服务器会将方法的输出参数发送到OPC UA 客户端。

编写好的OPC UA 服务器方法FB块需要在程序OB中调用,可以是同一个服务器方法FB在程序OB中调用多次;也可以是在程序OB中分别调用不同的服务器方法FB。在程序OB中调用的服务器方法FB块的背景数据块的数量是服务器方法的数量。

S7-1200 OPC UA服务器功能使用及限制条件:

⑴OPC_UA_ServerMethodPre和OPC_UA_ServerMethodPost指令仅能在FB块中调用,实例可以选择多重背景或者参数实例。

⑵OPC_UA_ServerMethodPre和OPC_UA_ServerMethodPost需要按照顺序进行调用,OPC_UA_ServerMethodPre在前,OPC_UA_ServerMethodPost在后。

⑶在FB块中调用OPC_UA_ServerMethodPre和OPC_UA_ServerMethodPost指令生成的背景数据块名称不要进行修改。

⑷如果OPC UA 服务器方法中包含输入/输出参数,输入和输出参数的名称严格按照UAMethod_InParameters和UAMethod_OutParameters定义,不要进行修改。

⑸OPC UA 服务器方法的输入输出参数数据类型可以使用STRUCT或者UDT(用户自定义的PLC数据类型)。

⑹方法的输入输出参数定义可以使用的数据类型可以参考表1所示边界条件。

表1.边界条件

SIMATIC 数据类型

OPC UA 数据类型

BOOL

布尔型

SINT

Sbyte

INT

INT16

DINT

INT32

USINT

字节

UINT

UINT16

UDINT

UINT32

REAL

浮点型

LREAL

双精度浮点型

WSTRING

字符串

DINT

枚举和所有派生数据类型

2 S7-1200 OPC UA 服务器方法实例

下文以具体实例说明,S7-1200如何使用OPC UA服务器方法功能以及在使用过程中需要注意的事项。

2.1 任务目标、所用硬件和软件

实现功能:

1200 作为OPC UA 服务器,通过指令编程提供服务器方法;

UA Expert作为OPC UA 客户端调用服务器方法;

当变量B0为1的时候,服务器方法的输入参数传送给服务器方法的输出参数;

当变量B0为0的时候,服务器方法的输入输出不进行传送,报错16#ffffffff。

实例中所用硬件及软件如表3所示:

表3.硬件及软件

TIA Portal

STEP7 Professional V17

CPU 固件

CPU1215 DC/DC/DC V4.5.1

OPC UA 客户端

UA Expert V1.5.1

2.2 硬件组态

⑴创建新项目,添加CPU1215 DC/DC/DC V4.5的CPU。在弹出的PLC 安全设置中进行组态设置。此实例分别将保护机密的PLC数据设置为禁用;将PG/PC和HMI的通信模式设置为支持传送的和安全的PG/PC通信;PLC访问保护设置为完全访问权限,如图3所示。

图3.PLC安全设置

⑵在CPU属性中的以太网地址属性中,添加新子网PN/IE_1,设置IP地址为192.168.0.125,设置子网掩码为255.255.255.0。如图4所示。

图4.设置以太网地址

⑶在CPU 属性>OPC UA>服务器,访问服务器中,勾选复选框激活OPC UA服务器;在选件>常规中设置端口号,按照默认设置为4840,由此设置产生的URL为OPC.TCP://192.168.0.125:4840,如图5所示。

其他OPC UA 服务器属性,保持默认设置不变。

图5.激活OPC UA服务器并设置端口号

⑷CPU属性>运行系统许可证>OPC UA 中,购买的许可证为SIMATIC OPC UA S7-1200 basic,如图6所示。

图6.设置运行系统许可证

2.3 软件编程

⑴添加添加PLC数据类型,用于服务器方法的输入和输出参数的数据类型,如图7所示。

图7.定义DATA_TYPE数据类型

⑵添加FB1命名为Method_FB,在其中先后调用OPC_UA_ServerMethodPre和OPC_UA_ServerMethodPost,生成背景数据块时要选择多重背景。添加服务器方法的输入输出参数名称必须为UAMethod_INParmeters和 UAMethod_OUTParameters,数据类型为创建好的PLC数据类型“DATA_TYPE”。在静态变量区域中添加中间变量,FB1块接口区定义如图8所示。

图8.Method_FB接口定义

⑶ OPC UA 服务器方法软件编程可以使用LAD、FBD及SCL编程,本实例中使用SCL语言编程。编程时,以CASE OF语句构成程序的主要框架,通过修改CASE语句表达式step的数值转至不同位置执行程序,如图9所示。

图9. Method_FB编程

下边详细说明图9中实现的功能:

step为0:执行OPC_UA_ServerMethodPre指令,如果该指令执行出错,则step赋值为100,不执行中间程序;如果该指令执行完成Done=true且called=true,则将step赋值为1。

step为1:实现主要的功能,B0等于1时,将UAMethod_INParmeters赋值给UAMethod_OUTParameters,同时将post_result赋值为0;B0等于0时,post_result赋值为16#ffffffff。最后将post_finished置位为1,step赋值为2。

step为2:执行OPC_UA_ServerMethodPost指令,如果该指令执行出错,则step赋值为100且post_result赋值为16#ffffffff;如果该指令执行完成Done=true,则将post_finished复位为0,并且将step赋值为0。

step为100:当任意一个服务器指令执行出错时程序到此标号中执行,当reset为1时, post_result赋值为0,将step赋值为0,回到CASE OF 的第一个标号中执行程序。

此种编程结构及思路可供日后编程参考使用,在step为1处编写要实现的功能。实现的功能可以是同步执行的也可以是异步执行的,所谓异步即需要多个扫描周期才可以执行完成。当功能执行完成后,再修改step的数值,程序转至其余步骤执行。

⑷在OB1中调用编写的FB1生成背景数据块并且在项目树中添加服务器接口,如图10所示。

图10.添加服务器接口

⑸添加OPC UA 服务器接口,并且从OPC UA 元素中将Method_FB_DB向左拖放至服务器接口中,如图11所示。

图11.服务器接口中添加服务器方法

⑹对项目进行编译,将项目整体下载至CPU中。

2.4 UA Expert连接S7-1200 OPC UA 服务器

⑴打开OPC UA客户端软件 UA EXPERT,添加服务器,在发现服务器中双击Double click to Add Server以添加服务器,在URL中输入192.168.0.125:4840,如图12所示。

图12.输入URL发现服务器

⑵由于在S7-1200 CPU属性中勾选了无安全设置的安全策略,用户身份认证按照默认设置的是访客认证,所以,展开找到的OPC UA 服务器,选则None-None,选择Anonymous,如图13所示。

图13.选择无安全设置的服务器

⑶S7-1200 OPC UA Server添加成功后,工具栏中点击连接服务器,如图14中红色方框所示。

图14.连接服务器

⑷在建立通信连接前,通信双方要进行证书的验证,由于事先没有进行相关安全通信证书的导入/导出的工作,在首次连接时,会弹出对话框,在对话框中点击 Trust Server Certificate,然后再点击Continue,如图15所示。

图15.信任服务器证书

2.5 调用服务器方法

⑴在Address Space(命名空间)中浏览到ServerInterfaces>服务器接口_1>Method_FB_DB,选择服务器方法,鼠标右键点击call,如图16所示。

图16.调用服务器方法

⑵弹出的对话框中,将输入参数的B0设置为false,B1设置为10,点击call,显示调用结果失败,并且有报错16#ffffffff,输出的参数中B1还是等于0,没有实现输入参数向输出参数的传递,如图17所示。

图17.服务器方法调用失败

⑶在对话框中,将输入参数的B0设置为true,B1设置为10,点击call,显示调用成功,输出的参数中B0和输入参数的B0一样为True且输出参数中的B1等于输入参数B1等于10,实现了输入参数向输出参数的传递,如图18所示。

图18.服务器方法调用成功

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 S7-1200 OPC UA 服务器方法概述
  • 2 S7-1200 OPC UA 服务器方法实例
    • 2.1 任务目标、所用硬件和软件
      • 2.2 硬件组态
        • 2.3 软件编程
          • 2.4 UA Expert连接S7-1200 OPC UA 服务器
            • 2.5 调用服务器方法
            相关产品与服务
            SSL 证书
            腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档