设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
TwinCAT3多TASK时IO刷新分配
返回列表
发新帖
[西门子]
TwinCAT3多TASK时IO刷新分配
[复制链接]
7875
|
0
|
2024-1-18 15:58:17
|
显示全部楼层
|
阅读模式
在TwinCAT3的项目实践中,经常会需要给一个项目分配多个Task,指定不同的优先级和循环时间,例如通常默认Plc Task是10ms。而项目中的报警程序、配方读写程序、HMI刷新可能会指定一个比较慢的Task,例如100ms。除了代码部分可以根据需求指定不同的刷新周期,此外还有所涉及到的IO模块,根据应用需求,可能也需要采用不同的刷新周期,才能达到预期的控制效果。实际中,代码部分工程师会熟练的进行多task调用,而IO部分相对容易被忽视,甚至由此会导致一些问题。
如下图所示,项目中有PlcTask 4ms和SlowTask 100ms,假如不做特殊IO刷新分配,项目中定义在不同地方的IO,例如在GVL中或某些POU中,可能会被分配到一个TASK或多个TASK中,从而IO的刷新周期不一致。IO的Ethercat刷新周期,是由所属的Task决定的。这样就容易导致一些问题。
可能带来的后果
没有指定IO的刷新周期,导致IO没有按照预期的周期来刷新。假如IO被一个比较慢的Task调用,轻则导致IO刷新不及时,导致设备的响应变慢,CT时间变长。严重时可能导致IO设备的通讯报警。
例如有的客户,EL4004和EL6002的IO变量被误分配到了ALARM Task(100ms)导致Ethercat网络sync manager watchdog超时的问题,两个模块通讯一直不正常,在OP和safe Op中频繁切换。
如何指定IO的刷新周期
要解决上面的问题,就需要我们留意IO的刷新分配。假如自动分配的刷新周期不合理,TwinCAT3支持通过修改attribute属性方式来分配IO的刷新Task。
{attribute'TcContextName':='SlowTask'}
{attribute'TcContextName':='PlcTask'}
定义在某个IO变量上,就指定某个IO的分配。
假如定义在GVL或POU的最上面,就是对GVL和POU中所有的IO都生效。
分配方式1:
:
分配方式2:
两种分配方式会产生不同的效果。通过第二种分配方式,把IO都通过PlcTask来刷新。就避免了100ms Task刷新IO通讯,导致的Ethercat通讯异常。
其他应用
假如程序中存在需要快速采样和快速输出的,除了定义一个FastTask(例如500微秒),还需要把涉及到的IO变量分配到FastTask中来快速刷新,才能达到预期的效果。
关注本公众号和个人微信CloudKuang,了解更多应用案例。倍福产品使用问题或工控应用解决方案欢迎交流探讨。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
clyyhn
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』