0基础入门VTD-实操动态场景建模1

衔接上篇公众号内容,我们继续学习交通指示灯的制作,今天需要在Scenario Editor中去设置如何让红绿灯按照我们规定的逻辑去做跳转。

话不多说,我们现在开始

首先,先确定已经将ROD中的tdo文件保存并生成osgb和xodr文件
。(具体操作可参考0基础入门VTD—实操静态道路建模1)

一、打开Scenario Editor

回到最初打开ROD的GUI界面,这次我们选择Scenario Editor,进入Scenario Editor界面。

图片

  二、选择对应的osgb和xodr文件

图片

打开Scenario Editor ,新建,然后我们再去重新将之前生成的xodr和osgb文件引用导入。

图片

点击Properties,在Scene这栏中,将xodr和osgb文件选入,具体文件路径可参考上图。

三、将红绿灯显示打开

图片

在View中将Traffic Lights打开,将红绿灯显示出来。

四、设置控制器

图片

设置控制器,新建后,设置Phase Type和持续时间,控制器的作用仅是控制车道上的车辆行为,假设我们需要路口的车辆Go状态30秒,Attention时长为3秒,我们设置参考如下:1号ID控制器,Go为30秒,Attention3秒,由于我们之前ROD中设置的总共有4个红绿灯控制器,所以总秒数是(30+3)*4,Stop秒数为总秒数-Go的秒数-Attention的秒数,即为99秒。

图片

1号控制器设置完成后,我们开始设置第二个控制器,如下图:

图片

第2个控制器的时间设置上需要根据第1个控制器时间做调整,第1个控制器使车辆变为Stop状态了,第2个控制器再开始控制另一条路上的车辆Go状态,所有控制器的Go和Attention持续时间是我们之前固定的,并且控制器亮灯总秒数也是一样,所以还需要在后面再加一个66秒的Stop状态。后面的控制器设置原理和第2个控制器原理一样。全部设置完成后,可通过时间条来检查是否正确。(如下图)

图片

五、设置控制器下红绿灯

我们还记得在ROD中每个红绿灯除了自己的独立ID外,还绑定过控制器ID,点击控制器ID旁的加号,可以清晰看到控制器下的几个红绿灯。那接下来我们要将这些红绿灯的排序设置成和控制器一致。设置参考如下图

图片

如果这里设置的和控制器顺序不符的话,就会发生车辆行为和交通指示灯不一致的画面。所以大家在设置的时候一定要细心一些哦。除了一个个设置以外,我们还可以直接复制黏贴哦,选中设置好的红绿灯,再点击左上方第三个复制键,再选择需要黏贴的红绿灯,点击左上方第四个黏贴键,可以大大提升我们的效率。

设置完成后,我们需要添加车辆,让场景动态还原。

图片

设置车辆速度,将Animation设置为External(场景设置中,至少有一辆车设为External)

图片

保存文件后,回到GUI界面(Scenario Editor界面不用关闭),在Flies中Scenario文件夹内找到保存的xml文件。

图片

点击开始后,会跳出一个mainRS的窗口,在这个窗口中我们可以看到车辆在我们的场景中跑起来啦。

图片

掌握CoDeSys中的数据类型对于编写高效、准确的程序至关重要。在CoDeSys编程中,数据类型不仅决定了变量能够存储的数据范围,还影响着程序的性能和资源使用。以下是如何使用这些数据类型的实际示例: 参考资源链接:[CoDeSys数据类型详解:从BOOL到LREAL](https://wenku.csdn.net/doc/861vjw4vtd?spm=1055.2569.3001.10343) 1. **布尔变量(BOOL)**: BOOL类型通常用于控制逻辑和条件分支。例如,在一个交通信号灯控制系统中,可以使用BOOL来表示红绿灯的状态。 ```plc VAR redLight, greenLight: BOOL; // 表示红绿灯状态 END_VAR redLight := FALSE; greenLight := TRUE; ``` 2. **整数数据类型**: 整型数据适合用于计数、索引和操作数值。例如,记录车辆通过数量可以用一个整数变量。 ```plc VAR vehicleCount: INT := 0; // 记录通过的车辆数 END_VAR vehicleCount := vehicleCount + 1; ``` 3. **浮点型数据**: REAL和LREAL用于表示具有小数部分的数值。在需要高精度计算的场合,如模拟控制过程,它们非常有用。 ```plc VAR temperature: REAL; // 表示温度值 END_VAR temperature := 36.6; ``` 4. **字符串(String)**: 字符串类型适用于文本信息的存储和处理,如用户界面显示。 ```plc VAR message: STRING[20]; // 显示消息 END_VAR message := 'System Ready'; ``` 在编程时,正确选择数据类型是至关重要的。例如,如果一个变量代表的是开关状态,使用BOOL类型最为合适。而对于需要处理大量数据或更高精度的计算,REAL或LREAL是更好的选择。整数类型适用于计数器或索引,而字符串则适用于存储和显示文本信息。 为加深对这些数据类型使用的理解,强烈推荐阅读《CoDeSys数据类型详解:从BOOL到LREAL》。这本书详细介绍了各种数据类型的特点和应用场景,通过实例加深对CoDeSys编程的理解,使您能够更加得心应手地应用这些数据类型到您的项目中。 参考资源链接:[CoDeSys数据类型详解:从BOOL到LREAL](https://wenku.csdn.net/doc/861vjw4vtd?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上海威蓝智能科技有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值