在 S7-1500 CPU(自固件版本 V2.5 起)的 OPC UA 服务器中,可以选择通过用户程序提供方法。例如,OPC UA 客户端可使用这些方法,通过 S7-1500 CPU 的方法调用启动生产作业。
OPC UA 方法是“远程过程调用”的实现,为不同通信节点之间的交互提供了有效机制。该机制提供作业确认和反馈值,因此用户*再编程握手机制。
例如,使用 OPC UA 方法,可以持续传输数据,而*触发位/握手或触发控制器上的特定操作。
通常,OPC UA 方法的工作原理与运行系统中由外部 OPC UA 客户端调用的受专有技术保护函数块的原理类似。
OPC UA 客户端仅“监视”已定义的输入和输出。函数块、方法或算法的内容对外部 OPC UA 客户端保持隐藏。OPC UA 客户端接收成功执行的反馈以及函数块(方法)返回的值,或者,如果执行不成功,则会收到错误消息。
作为程序员,对 OPC UA 方法运行的程序环境负有责任并具有完全控制权。
确保 OPC UA 方法返回的值与 OPC UA 客户端提供的输入值一致。
遵守分配参数名称和结构的规则以及允许的数据类型(请参见 OPC UA 服务器指令的说明)。
运行期间的行为:对于每个实例,OPC UA 服务器均接受一次调用。在调用已由用户程序处理或已**时之前,方法实例不可用于其它 OPC UA 客户端。
实现用户程序(作为服务器方法)的基本步骤如下。
用于实现服务器方法的程序(函数块)的结构如下:
使用 OPC_UA_ServerMethodPre 查询服务器方法调用
先在用户程序中(即服务器方法中)调用“OPC_UA_ServerMethodPre”指令。
该指令将执行以下任务:
- 通过该指令询问 CPU 的 OPC UA 服务器是否已通过 OPC UA 客户端调用服务器方法。
- 如果已调用方法,并且服务器方法具有输入参数,服务器方法现在会接收到输入参数。
服务器方法的输入参数来自调用 OPC UA 客户端。
编辑服务器方法
在这部分服务器方法中,用户提供实际用户程序。
选项与其它任何用户程序中的选项相同(例如访问其它函数块或全局数据块)。
如果服务器方法使用输入参数,则可使用这些参数。
仅当 OPC UA 客户端已调用服务器方法时,才可执行服务器方法的这一部分。
成功执行方法后,如果方法具有输出参数,需要设置服务器方法的输出参数。
使用 OPC_UA_ServerMethodPost 响应服务器方法
要完成服务器方法,应调用“OPC_UA_ServerMethodPost”指令。
使用参数通知“OPC_UA_ServerMethodPost”指令是否已处理用户程序。
如果用户程序已成功执行,则会通过相关参数通知 OPC UA 服务器。OPC UA 服务器随后会将服务器方法的输出参数发送到 OPC UA 客户端。
无论用户程序是由“OPC_UA_ServerMethodPre”和“OPC_UA_ServerMethodPost”指令处理还是在下一个周期继续执行,始终以成对的形式调用这两个指令。
有关实现服务器方法的示例,请参见 STEP 7 在线帮助。
下图显示了 OPC UA 客户端 (A) 如何调用服务器方法“Cool”:
CPU 在循环用户程序 ⑥ 中执行服务器方法“Cool”的实例“Cool1”。
CPU 首先使用指令“OPC_UA_ServerMethodPre”查询 ④ OPC UA 客户端是否调用了服务器方法“Cool”①。
如果尚未调用服务器方法,则程序执行将通过 ④ 和 ⑥ 直接返回至循环用户程序。在“Cool1”之后,CPU 恢复循环用户程序。
如果已调用服务器方法,则该信息将通过 ④ 返回至服务器方法“Cool”。实际功能现在会在 Cool 服务器方法中执行,请参见图中的“<方法功能>”(<Method Functionality>)。
然后服务器方法使用指令“OPC_UA_ServerMethodPost”⑤ 通知固件 (B) 该指令已执行 ③。
固件通过 ② 将该信息返回至调用 OPC UA 客户端 (A)。
在“Cool1”之后,CPU 恢复循环用户程序。
A | 服务器方法的调用以及“完成”(Done) 信息(方法已完成)的管理 |
① | 服务器方法的异步调用 |
② | 调用方法的异步“完成”(Done) 信息(方法已完成) |
B | 等待 OPC UA 客户端调用,管理队列中的调用,将“完成”(Done) 信息从循环用户程序转发到 OPC UA 客户端 |
③ | 在 OPC UA 服务器与用户程序的方法实例之间的数据传输 |
C | 检查方法是否已调用。 如果已调用,将输入数据从 OPC UA 服务器转发到用户程序的方法实例,并为方法实例反馈方法已调用(“已调用”) |
④ | 同步调用指令 OPC_UA_ServerMethodPre(作为多重实例),说明来自 OPC UA 服务器的输入数据的存储区域。 返回值指示 OPC UA 客户端是否调用了方法。 |
⑤ | 检查方法是已完成还是仍处于活动状态(“忙”)。 |
D | 检查方法是否已完成。 如果已完成,则会将方法实例的输出数据转发到 OPC UA 服务器,并通知方法实例方法已完成。通知 OPC UA 服务器。 |
⑥ | 使用所需实例和过程参数调用方法 FB(在本例中为:FB Cool) |
“指令 > 通信 > OPC UA 服务器”(Instructions > Communication > OPC UA > OPC UA server) 的帮助中详细介绍了“OPC_UA_ServerMethodPre”和“OPC_UA_ServerMethodPost”。
词条
词条说明
西门子公司的S7-1500是专为中高端设备和工厂自动化设计的新一代PLC。该控制器集成了运动控制、工业信息安全和故障安全功能。通过阅读S7-1500的资料和观看S7-1500和TIA博途的视频讲座,不难发现S7-1500和TIA博途与上述大讨论中网友畅想的*六代PLC的趋势基本一致,还有很多追赶网友想象的亮点。1 性能大幅提升1.1 功能强大的CPU模块1.1.1 可供用户使用的充足的资源CPU
写入变量定制 Web 页面可以向 CPU 写入数据。这需要使用可识别待写入的 PLC 变量的 AWP 命令。同时必须由 PLC 变量名称* PLC 变量。IN 变量(对控制器而言的输入方向)位于浏览器页面中。 例如,可以通过表格实现。可以通过浏览器在 HTTP 标题(使用 cookie 或 POST 方法)或 URL(使用 GET 方法)中设置变量,然后由 Web 服务器写入相应 PLC 变量。
ISO 传输地址详细信息相关性参数组“属性 > 常规 > 地址详细信息”(Properties > General > Address details) 中的连接组态。地址参数ISO 传输连接通过本地和远程连接端点来*。本地地址:本地 MAC 地址和本地 TSAP(Transport Service Access Point,传输服务访问点)远程地址:远程 MAC 地址和
诊断缓冲区功能诊断缓冲区是 CPU 系统存储器的一部分。 诊断缓冲区包含由 CPU 或具有诊断功能的模块所检测到的错误。 其中包括以下事件:CPU 的每次模式切换(例如,POWER UP、切换到 STOP 模式、切换到 RUN 模式)每次诊断中断S7-1200-CPU 的诊断缓冲区可容纳 50 个条目,其中最后(较近的)10 个条目在循环上电后将保留下来。这些条目只能通过将 CPU 恢复到工厂默认
公司名: 上海腾希电气技术有限公司
联系人: 田礼科
电 话: 021-37660026
手 机: 13681875601
微 信: 13681875601
地 址: 上海松江上海市松江区广富林路4855弄星月大业**88号4楼
邮 编:
网 址: shtxjd.cn.b2b168.com
公司名: 上海腾希电气技术有限公司
联系人: 田礼科
手 机: 13681875601
电 话: 021-37660026
地 址: 上海松江上海市松江区广富林路4855弄星月大业**88号4楼
邮 编:
网 址: shtxjd.cn.b2b168.com