[倍福] TwinCAT User Mode,非实时 Runtime

[复制链接]
查看46502 | 回复0 | 2024-11-7 08:03:39 | 显示全部楼层 |阅读模式
TwinCAT 3.1.4026中新增了User Mode(简称UM),非实时的Runtime功能,用于执行没有实时性要求的TwinCAT 程序。

1. 原理

相对于标准的 TwinCAT Realtime Runtime(简称RM), UM最大的区别是它由Windows系统调度而不是实时核。



在每一个Base Time 中,它占用的是Windows时间而不是TwinCAT RT的时间:



它的好处是运算量再大,也不会有超时错误,更不会影响实时核上其它运算。

2. 工作模式

UM有3种工作模式:周期(Cyclic),外部触发(External Control),和立即执行(FastAsPossible)。

Cyclic是UM Runtime启动后的默认模式,类似RM的分时多任务机制,只是任务周期并不像设置值那么固定,并且波动很大。如果有多个任务,其执行频率也大致保持设置的比例。

External模式需要从外部发命令触发运行若干时间然后自行停止,而FastAsPossible是立即执行永不停止直到退出该模式,不需要外部触发,也不需要等待Realtime核的Base Time开始。

无论哪种模式,只要在运行期间,都是大致按照Cyclic的模式一个周期一个周期地循环执行。因此需要PLC编程以ADS命令切换 UM的运行模式。当它切换到External模式又没有外部触发命令的时候,所有Task就完全不执行。

3. 用途
由于UM没有实时性,因此不能直接驱动EtherCAT或者其它实时以太网比如PN、EIP等,但支持ADS、TcpIp、Modbus TCP等非实时通讯。当然所有其它要求实时性的TF插件均不可用,比如运动控制、温度控制、PID控制、Vision等等。

UM的优势在于文件操作、以太网通讯和大型运算。

需要快速响应的时候,使用FastAsPossible模式,可以在微秒级触发程序运行。而不用持续以50us的周期监视执行条件,耗费CPU资源。

4,接口

通常 UM 作为 RM 的扩展功能运行,一个控制器上可以同时有1个实时系统RM和若干个非实时系统UM。一个测试用TwinCAT Project,目标系统可以选择为本机上RM或者某个UM,然后其它操作就和RM一模一样了。

UM主要通过ADS通讯与外界交互。每个UM有独立的 NetId,可以象RM那样点击图标查看和修改。

UM的TwinCAT项目中也和RM一样,可以有多套PLC程序,其端口也是851、852等,内部的PLC变量也可以通过变量名或地址进行ADS访问。

特殊的ADS接口是UM运行时本身。比如查询或切换TwinCAT状态等,需要通过Port 200,各功能的IndexGroup和Offset如下:

功能

Index Group

Offset

查询Runtime类型

0x0700

0x0002

查询平台类型

0x0700

0x0004

查看Runtime状态

0x0001

0x0032

指定External模式下UM运行的Tick数

0x0001

0x0031

可以通过PLC或者高级语言发送ADS命令。

5、操作步骤
倍福广州办梁工实际测试了这个功能,并写整理了详细的记录。如果您有可能的应用场景,欢迎咨询。可通过 http 或者 ftp 地址访问测试文档:
http://www.baclizzy.com.cn

ftp://baclizzy.com.cn:21/Lizzy的倍福园地

按日期查找即可




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则