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

2022-03-29 17:09:06 浏览数 (1)

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.服务器方法调用成功

0 人点赞