80 lines
3.0 KiB
Plaintext
80 lines
3.0 KiB
Plaintext
loadrt conv_s32_u32 names=laser.motion.type-conv
|
|
loadrt bitslice names=laser.motion.type-slice personality=2
|
|
loadrt limit1 names=laser.power.min.limit,laser.power.max.limit,laser.power.cmd.limit
|
|
loadrt laserpower names=laser.control
|
|
loadrt raster names=laser.raster
|
|
loadrt not names=motion.enabled-not
|
|
|
|
addf laser.power.min.limit servo-thread
|
|
addf laser.power.max.limit servo-thread
|
|
addf laser.power.cmd.limit servo-thread
|
|
addf laser.motion.type-conv servo-thread
|
|
addf laser.motion.type-slice servo-thread
|
|
addf laser.control servo-thread
|
|
addf laser.raster servo-thread
|
|
addf motion.enabled-not servo-thread
|
|
|
|
|
|
#the laser will fire when the the machine is in motion
|
|
#and motion.motion-type is 2 or 3, which is linear feed or arc feed
|
|
#we use a bit-slice to determine if we can fire out laser
|
|
net laser.motion.type <= motion.motion-type
|
|
net laser.motion.type => laser.motion.type-conv.in
|
|
net laser.motion.type-u32 <= laser.motion.type-conv.out
|
|
net laser.motion.type-u32 => laser.motion.type-slice.in
|
|
net laser.motion.feed-move <= laser.motion.type-slice.out-01
|
|
|
|
|
|
#enables laser to fire
|
|
net laser.motion.feed-move => laser.control.enabled
|
|
|
|
setp laser.power.min.limit.min 0
|
|
setp laser.power.min.limit.max 100
|
|
|
|
net laser.power.min.cmd <= motion.analog-out-00
|
|
net laser.power.min.cmd => laser.power.min.limit.in
|
|
net laser.power.min.value <= laser.power.min.limit.out
|
|
net laser.power.min.value => laser.control.min-power
|
|
|
|
setp laser.power.max.limit.min 0
|
|
setp laser.power.max.limit.max 100
|
|
|
|
net laser.power.max.cmd <= motion.analog-out-01
|
|
net laser.power.max.cmd => laser.power.max.limit.in
|
|
net laser.power.max.value <= laser.power.max.limit.out
|
|
net laser.power.max.value => laser.control.max-power
|
|
|
|
setp laser.power.cmd.limit.min 0
|
|
setp laser.power.cmd.limit.max 100
|
|
|
|
net laser.power.cmd <= motion.analog-out-02
|
|
net laser.power.cmd => laser.power.cmd.limit.in
|
|
net laser.power.cmd.value <= laser.power.cmd.limit.out
|
|
net laser.power.cmd.value => laser.control.vector-power
|
|
|
|
net laser.motion.distance-to-go <= motion.distance-to-go
|
|
net laser.motion.distance-to-go => laser.control.distance-to-go
|
|
|
|
net laser.motion.cur-vel <= motion.current-vel
|
|
net laser.motion.cur-vel => laser.control.cur-velocity
|
|
|
|
net laser.motion.req-vel <= motion.requested-vel
|
|
net laser.motion.req-vel => laser.control.req-velocity
|
|
|
|
#rastering controller
|
|
net J0:pos-fb => laser.raster.position
|
|
|
|
net laser.raster.program-sig <= laser.raster.program
|
|
sets laser.raster.program-sig 20000
|
|
|
|
net laser.power.raster-power <= laser.raster.output
|
|
net laser.power.raster-power => laser.control.raster-power
|
|
|
|
net laser.power.raster-enabled <= laser.raster.enabled
|
|
net laser.power.raster-enabled => laser.control.raster-mode
|
|
|
|
net motion.enable-not <= laser.raster.fault
|
|
net motion.enable-not => motion.enabled-not.in
|
|
net motion:enable <= motion.enabled-not.out
|
|
net motion:enable => motion.enable
|