Siemens Plant Simulation仿真软件自带视频学习问题总结
1、如何去除多余的围栏
对于围栏上多余的护栏删除方式是选择围栏并将光标放在其右侧,按加号键,即可选中,同理删除一个围栏网的方式也是这样。
2、如何让图片变为三维立体
纹理板只要加上厚度,一个图片就会变得立体起来,当然还需要设置增加厚度的部分的颜色。
3、钻头钻孔-动画代码
var d : length := @.MuHeight
var feedSlow : speed := 0.01
var feedFast : speed := 0.5 //m/sec
var timeForDrilling := (d + 0.05 + 0.01)/feedSlow
//0.05 is the safety distance to stop before the part
//0.01 is the distance we dirll more than the thickness of the part
var timeForMoving := (1 - d - 0.05)/feedFast
station.proctime := 2*TimeForDrilling + 2*TimeForMoving
if is3dOpen and animIcon
var Position1 : length := d + 0.05
var upPosition : real[3] := [0.0, 0.0, 0.0]
var animations : any := Station._3d.getObject("Drill").selfAnimations
animations.resetAnimation
//move down fast
var downPosition : real[3] := [0.0, 0.0, Position1-1]
animations.scheduleTranslation(upPosition, downPosition, feedFast)
animations.startNextAnimationblock
//start drilling
var TargetAngle : integer := round(180*timeFordrilling)
animations.scheduleRotation(0, targetAngle, 180)
//and move down
var downPosition2 : real[3] := [0.0, 0.0, -1.01]
animations.scheduleTranslation(downposition, downposition2, feedSlow)
//move up slowly
animations.startNextAnimationblock
animations.scheduleRotation(0, TargetAngle, 180)
animations.scheduleTranslation(downPosition2, downPosition, feedSlow)
//move up fast
animations.startNextAnimationblock
animations.scheduleTranslation(downPosition, upPosition,feedFast)
animations.play
end
4、移动扫描-动画代码
if is3dOpen and animicon
var animations : any := Station._3D.getObject("ToolHolder").selfAnimations
animations.resetAnimation
animations.Left.schedule
animations.play
end
wait 1
if is3dOpen and animicon
animations.resetAnimation
animations.Right.schedule
animations.play
end
wait 1
if is3dOpen and animicon
animations.resetAnimation
animations.Middle.schedule
animations.play
end
wait 1
5龙门吊-六七八九四个工位吊装
var Gantry : object := GantryLoader
var Loader : object := Gantry.Loader1
var step : integer := 1
waituntil Loader.state="idle"
Repeat
switch step
case 1
Loader.pickMuFrom(Station6)
case 2
if not Station7.occupied then
step := 99
end
loader.replaceMuAt(Station7)
case 3
if not Station8.occupied then
step := 99
end
Loader.replaceMuAt(Station8)
case 4
Loader.placeMuAt(Station9)
else
Loader.endsequence
exitLoop
end
waituntil Loader.state="idle" or Loader.state="waiting"
step += 1
until false
6、门式起重机-将物料吊运到工位3
var Portal : object := multiPortalCrane.Portal1
waituntil Portal.state="idle"
Portal.transferMU(?, 工位3)
注意:使用该方法时候,需要将软件中自带的吊运代码中的判断ProductHeight的过程注释掉,否则容易报错
7、堆垛机出入库-只在前面出入
(1) 直接使用标准库
// Method Tasks:
// Inform the WMS about the new arriving pallet
// The WMS looks for a free place for the palett and reserves this place.
// If there is now place available for the pallet foundFreePlace will be false
var foundFreePlace : boolean := root.WMS.placeIntoStock(@)
if not foundFreePlace
self.openDialog
messageBox("Could not find any free place in the racklanes", 1, 1)
root.EventController.stop
end
(2) 自定义模型-Warehouse
// Method Tasks:
// Inform the WMS about the new arriving pallet
// The WMS looks for a free place for the palett and reserves this place.
// If there is now place available for the pallet foundFreePlace will be false
var foundFreePlace : boolean := Warehouse.WMS.placeIntoStock(@)
if not foundFreePlace
self.openDialog
messageBox("Could not find any free place in the racklanes", 1, 1)
root.EventController.stop
end
最后,查看详细的制作仿真模型和仿真动作内容请点击下方链接
链接: 仿真SPP文件下载.