浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
西门子CPU416-3中央处理器
发布时间:2023-11-04
观看西门子CPU416-3中央处理器视频:

西门子CPU416-3中央处理器西门子CPU416-3中央处理器西门子CPU416-3中央处理器

西门子CPU416-3中央处理器西门子CPU416-3中央处理器西门子CPU416-3中央处理器西门子CPU416-3中央处理器西门子CPU416-3中央处理器

Track(轨道)和TwoLaneTrack(双通轨道)的所有长度将与指定给用户定义属性的值相乘。其实这个相乘得到的值才是决定小车路径选择的关键,小车会选择该值*小的路径行驶向目的地。我个人人文,这其实就是路径的拥堵情况吧,这仅是我个人的理解。

那接下来我们就通过一个案例讲解一下:

案例讲解:

建模如下:



小车(Transporter)的路由权重属性定义:



轨道自定义属性的定义:

上方三条带有显示面板的轨道分别为:蓝色(Highway)、绿色(CountryRoad)、灰色(CityRoad2)。它们的自定义属性分别为:

蓝色(Highway)



绿色(CountryRoad)



灰色(CityRoad2)



剩下的其它轨道的自定义属性都为:



我们在小车中定义的路由权重属性为“CurrentTraffic”,对应用户定义属性中“CurrentTraffic”,我们就且称其为“当前权重系数”;“BasicWeight”则是我们定义的轨道上的“基础权重系数”。

我们还定义了两个方法,首先看到方法“reset”,代码如下:



其中“reset”是系统中定义好的方法,它的触发方式是:重置仿真。

只要我们重置仿真,该方法就会被触发一次。每次我们重置仿真时,我们就将“基础权重系数”赋值给“当前权重系数”。

再看方法“CheckTraffic”,代码如下:



该方法中,用对应轨道上的小车数量除以双通轨道A侧的长度,得出一个结果,可以视为该轨道的车辆密度(与人口密度的计算方法类似),再用该结果与“基础权重系数”相加得到“当前权重系数”。每当小车进入或退出一条轨道,轨道的“当前权重系数”必然是发生改变的。所以这个方法顾名思义,就是用来检查交通,重新计算轨道的交通情况,只不过它的表现形式是轨道的“当前权重系数”而已。

所有轨道对象的“CheckTraffic”方法的代码都是一样的,并且全都通过入口和出口控件来触发,因为车辆进入道路和驶出道路,道路的交通情况都发生了改变,所以都要触发一次方法来重新计算轨道的“当前权重系数”。

要注意的是,默认情况下,我们创建的轨道的控件中,入口和出口的触发,都勾选的是“前面”,这里我们要都修改为“后面”,这样不仅符合实际。小车只有完全进入了轨道,或者完全退出了轨道,才会使“当前权重系数”的值发生改变。

而且我们在该方法中,没有使用“move”指令,如果在出口前面触发代码,因为前面触发的控件优先级比连接器的优先级要高,小车触发控件后没有得到“move”指令,小车就不会继续运行到下一个轨道对象。而如果我们勾选了“后面”,连接器的优先级则比后面触发的控件优先级更高,所以小车能正常行驶到下一个轨道对象。



Tip:因为所有轨道对象的“CheckTraffic”方法的代码都一样,所以其实可以写好一个“CheckTraffic”方法放在模型框架中,再将该方法拖入到每个轨道对象的控件A中的入口、出口处即可。又或者我们先新建一个工具条,将我们需要用的对象拖入到工具条中,定义好相关的属性,再使用这些对象。养成这样一些好的习惯能大大减少我们修改模型的时间。

目的地设置及其他一些设置:

在“CityRoad1”的靠近出口处创建一个传感器,并在传感器中添加方法“SetTarget”,代码如下:



该方法用于计算每条轨道的加权系数乘以长度,并且给车辆定义一个目的地“CityRoad6”,因为车辆开启了自动路由,会根据路径权重,计算出后续三条路线的总体的长度与加权系数之积,并选择该值*小的路径驶向目的地。

我们在还框架中添加了三个实数类型的全局变量“WeightBlue”、“WeightGreen”、“WeightGrey”分别用来计算小车三条行驶路线的总体的长度与加权系数之积。

但比较重要的,大家要注意的是:这三个全局变量仅仅是用来做展示,方便我们观察计算的值,而不是影响我们小车做路径选择的因素,我们即使把这三个全局变量删除,也不会影响我们小车的行驶路径。



关于显示面板:

而模型中的位于轨道上方的“CurrentTraffic”属性我们没有使用到全局变量做展示,那么究竟是如何让它在对应的位置显示出来的呢?

右键单击对应的轨道,在弹出的选项中选择“编辑显示面板”,如图:



会弹出编辑窗口(这是CityRoad2的显示面板编辑窗口,我每个显示面板的Y坐标相差)



使用方法:

(1)勾选“活动的”,激活显示面板的使用;

(2)修改“位置”里的X、Y坐标,可调整显示面板的位置;

(3)修改“大小”里的高度和宽度,可调整显示面板的大小;

(4)可修改边框颜色和背景色;

(5)点击“元素”后方的“新建”,“编辑”会弹出下方的对话框,在对话框中能选择我们需要显示的值,值的位置,类型、位置、颜色等;



定义的两个元素为:




以下是我的模型中三个显示面板的位置,大家可以借鉴来进行调整到合适的位置:





Transfer Station没有特别的定义,不进行仔细讲解:




仿真结果:



当我们启动仿真时,每次小车经过传感器触发“SetTarget”,模型中的三个图形变量“WeightBlue”、“WeightGreen”、“WeightGrey”都会重新计算,发生相应的改变。我们通过观察这三个值就可以知道,小车是选择值*小的那条路径通往目的地。并不是取决于当前权重系数“CurrentTraffic”。


展开全文