本案例中,通过GraphicalPanels 界面的NumericEntry控件输入不同的数值,决定了FunctionBlocks 的多个Scripts的运行逻辑和启停逻辑。依照类似的逻辑,可以方便的实现实际应用中复杂的多的场景。

在本实例中,我们利用GraphicalPanels 界面中的Text Entry 控件,作为输入值,并将此值填入发送控制的报文ID=111中发送出去,依据值的范围来决定如下逻辑的执行:

1.输入介于0-100 的值并触发发送按钮,将使得报文222 发送周期定为20ms 每条,即停止script2,执行script1;

2.输入介于100-200 的值并触发发送按钮,将使得报文222 发送周期定为100ms 每条,即停止script1,执行script2;

3.输入其他值并触发发送按钮,将使得报文发送停止,即程序script1,script2 均停止。

操作界面样式

接下来我们分步进行完成:

步骤1:在message editor 中创建发送控制报文TriggerMsgT报文111,并定义一个信号xxxx (这个信号即关联我们GraphicalPanels 的输入控制信号)。

步骤2:打开GraphicalPanels面板,并编辑如下两个控件,TextEntry 控件关联信号 xxxx, 报文发送按钮关联TriggerMsgT 报文。常规操作一定要熟练!

步骤3:在MessageEditor的 Receive 部分,创建一条TriggerMsg的报文111,并同样位置定义信号xxxx,注意,这个报文和信号xxxx作为接收方,将是我们对接收数据进行范围判断,并执行不同逻辑的依据。

步骤4:MessageEditor的Transmit 部分在MS CAN上创建一个ID=222的报文,并编写两个FunctionBlocks的script 脚本,均为Manual 类型,控制MS CAN 上222报文的发送周期,一个是20ms 发送,一个是100ms 发送。还是那句话,常规操作,一定要熟练!实际的应用中,我们的逻辑会比这复杂,每个脚本行数超过100,脚本个数多至100个也是很正常的!

步骤5:创建中控台脚本程序Console,设置根据接收报文TriggerMsg的信号值xxxx所处的范围,启停1,2。逻辑的设置,您可以设置的更加巧妙吗?

现在就可以运行验证,并调试自己的逻辑了。这个案例只是抛砖引玉,相信您加以熟练应用和丰富完善,会写出更加精妙的应用程序!

备注:

程序案例源文件下载

JapanKoreaChinaUSA