Files
2026-08-20 06:17:39 +08:00

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