理论教育 如何在施耐德SoMachine控制器中配置和运行任务组态

如何在施耐德SoMachine控制器中配置和运行任务组态

时间:2023-10-22 理论教育 版权反馈
【摘要】:图7-33 事件任务的执行3)自由运行。图7-34 自由循环任务在组态任务时,可根据不同要求,配置任务的执行方式和优先级别。图7-35示出了任务的优先级和程序组织单元POU的执行顺序。图7-35 任务的优先级和程序组织单元POU的执行顺序例如在M238逻辑控制器上,我们对端口I2点进行组态,使它具有启动事件功能,并且启动事件的信号为上升沿,如图7-36所示。在M258逻辑控制器和LMC058运动控制器上,我们可以在专家模板上对端口进行配置。

如何在施耐德SoMachine控制器中配置和运行任务组态

SoMachine控制系统的执行具有以下特点:

●系统是多任务执行的。

●最大可执行任务数由控制器类型决定。

●不同的任务采用不同的执行方式。

●程序组织单元只有放入任务中,才会被控制器执行。

●只有程序组织单元POU才能加到任务栏中。功能块是不能加入到任务栏中的。

控制器扫描的顺序如图7-31所示。

978-7-111-46531-7-Chapter07-30.jpg

图7-31 控制器扫描的顺序

以下是任务执行的不同方式。

1)周期执行方式。如图7-32所示,每一次扫描的周期一致,也就是每一次扫描输入和程序字头是规律的、定时的。这样在与外部信号的对接中,会规避竞争冒险。图中的I.P.是扫描内部功能。

978-7-111-46531-7-Chapter07-31.jpg

图7-32 周期执行任务

2)事件任务。即引起执行一个中断任务。它按引起中断的方式在任务类型上分为事件(内部)和外部。当引起中断的信号来自内部的一些变量时,我们在类型栏目选择事件,并在事件的下拉菜单中选择变量。当引起中断的信号来自控制器硬件端口,则在类型栏目选择外部的,并在外部事件栏的下拉菜单中选择端口信号。事件任务的执行如图7-33所示。

978-7-111-46531-7-Chapter07-32.jpg

图7-33 事件任务的执行

3)自由运行。这种扫描方式为一旦结束一个程序扫描就马上返回程序字头,开始新的一次扫描。图7-34中的I.P.是扫描内部功能。

978-7-111-46531-7-Chapter07-33.jpg

图7-34 自由循环任务

组态任务时,可根据不同要求,配置任务的执行方式和优先级别。图7-35示出了任务的优先级和程序组织单元POU的执行顺序。

978-7-111-46531-7-Chapter07-34.jpg

图7-35 任务的优先级和程序组织单元POU的执行顺序

例如在M238逻辑控制器上,我们对端口I2点进行组态,使它具有启动事件功能,并且启动事件的信号为上升沿,如图7-36所示。

978-7-111-46531-7-Chapter07-35.jpg

图7-36 配置一个引起中断的端口

然后,在任务组态栏目建立一个事件任务Event_Task,如图7-37所示。

双击事件任务“Event_Task(1)”,打开任务配置,在任务类型单元,选择外部“External(2)”,然后在外部事件栏的下拉菜单中,选择“I2(3)”,这就相当于把事件与外部端口联系起来。再把事件任务的程序Event_1加入到中断任务执行序列中,如图7-38所示。

在M258逻辑控制器和LMC058运动控制器上,我们可以在专家模板上对端口进行配置。

如在专家模板DM72F0上,点击鼠标右键打开下拉菜单,选择“添加设备”,并选择“Event Latch0”,建立一个子设备Event Latch0。双击子设备(1),打开配置画面,在方式Mode上,选择事件“Event”,信号触发选择上升沿“Rising”(2),如图7-39所示。

事件任务配置(M258/LMC058)

在M258控制器和LMC058运动控制器上配置中断程序,与M238一样,首先把鼠标移到任务配置,然后点鼠标右键,打开菜单,选择“添加对象”,添加一个中断任务“Event_Task”,如图7-40所示。

建立好程序名后,双击程序名打开程序配置,在程序类型栏目选择“External”(2),在外部事件信号External event栏目,选择“BLOCK0_I0”(3)。在POU程序组织单元栏目,选择把事件中断程序Event_1加入到此(4),如图7-41所示。

这样,我们就完成了一个中断程序的配置,当外部端口信号I0的状态发生变化,就会引起一个中断,使程序扫描进入中断程序,执行中断程序的指令。

978-7-111-46531-7-Chapter07-36.jpg

图7-37 新建一个事件任务

978-7-111-46531-7-Chapter07-37.jpg

图7-38 配置任务执行方式和优先级

978-7-111-46531-7-Chapter07-38.jpg

图7-39 输入配置

978-7-111-46531-7-Chapter07-39.jpg

图7-40 建立一个中断任务

978-7-111-46531-7-Chapter07-40.jpg

图7-41 对任务进行配置(www.daowen.com)

那么在中断程序里I/O是如何刷新的呢?我们再来看看引起中断的I/O配置。在设备device配置框,双击专家模板DM72F0打开模板配置并点击专家I/O映射“Expert I/O Map-ping”。在总线循环选择栏,选择扫描中断任务“Event_Task”,如图7-42所示。

然后,在中断程序里,我们要使用PLC系统应用库里的立即I/O读写功能,如图7-43所示。

978-7-111-46531-7-Chapter07-41.jpg

图7-42 配置专家模板及总线扫描对象

978-7-111-46531-7-Chapter07-42.jpg

图7-43 控制器系统应用库中的立即I/O读写功能

这些系统库中的快速I/O读写,不依赖总线扫描,只反映当前状态。

该功能适用于嵌入式专用I/O功能块DM72F0和DM72F1。它将返回输入的当前物理值,当前物理值可能与该输入的当前逻辑值不同。该输入的变量值在下一个总线循环前不会改变。

立即输入功能如图7-44所示。

978-7-111-46531-7-Chapter07-43.jpg

图7-44 立即输入功能

功能块的输入见表7-1。

表7-1 功能块的输入

978-7-111-46531-7-Chapter07-44.jpg

功能块的输出见表7-2。

表7-2 功能块的输出

978-7-111-46531-7-Chapter07-45.jpg

功能块的输入/输出见表7-3。

表7-3 功能块的输入/输出

978-7-111-46531-7-Chapter07-46.jpg

调用这些功能块如图7-45所示,在程序编辑区调入运算块,打开输入助手,点击模块调用,在SEC中选取立即读写功能块。

选取写功能块

此功能用于设置嵌入式专用I/O(DM72F)的快速输出的当前物理值。

每个快速输出都有一个功能块:

DM72F0SetImmediateOutput0

978-7-111-46531-7-Chapter07-47.jpg

图7-45 在模块调用SEC库中选取读写功能块

立即输出功能如图7-46所示。

978-7-111-46531-7-Chapter07-48.jpg

图7-46 立即输出功能

功能块的输入见表7-4。

表7-4 功能块的输入

978-7-111-46531-7-Chapter07-49.jpg

功能块的输出见表7-5。

实现DM72F*SetImmediateOutput*

SoMachine对于下列情况返回编译错误:

●在多个任务中使用DM72F*SetImmediateOutput*功能。

●在应用程序中使用与DM72F*SetImmediateOutput*关联的%Q。

●该输出已经专用于某一嵌入式专用I/O功能块功能(例如:PWM、频率发生器、编码器的反射输出、警报)。

表7-5 功能块的输出

978-7-111-46531-7-Chapter07-50.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈