############################################ # Generic section ############################################ #========================================== # Components declaration #========================================== #loadrt trivkins #loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS loadrt weighted_sum wsum_sizes=4,4,2 #loadrt sum2 count=3 loadrt conv_s32_float count=5 loadrt scale names=FeedScale,RapidScale,SpindleScale loadrt and2 names=EstopAnd loadrt not names=EstopNot #loadusr atv_vfd -r 38400 -p even addf motion-command-handler servo-thread addf motion-controller servo-thread addf process_wsums servo-thread #addf sum2.0 servo-thread addf conv-s32-float.0 servo-thread addf conv-s32-float.1 servo-thread addf FeedScale servo-thread addf RapidScale servo-thread addf SpindleScale servo-thread addf EstopAnd servo-thread addf EstopNot servo-thread #loadusr halui -ini maurice.ini #loadusr io #========================================== # Global machine logic #========================================== net state-op => EstopAnd.in0 net STBEstop EstopAnd.in1 net Estop-and-out EstopAnd.out iocontrol.0.emc-enable-in EstopNot.in net Estop EstopNot.out #========================================== # X axis #========================================== net X-amp <= joint.0.amp-enable-out #net X-fault => joint.0.amp-fault-in net X-poscmd <= joint.0.motor-pos-cmd net X-posfb => joint.0.motor-pos-fb #net X-homed => joint.0.home-sw-in #net Home-X <= joint.0.homing net X-inhibit => motion.feed-inhibit #net X-PoT => joint.0.pos-lim-sw-in #net X-NoT => joint.0.neg-lim-sw-in #========================================== # Z axis #========================================== net Z-amp <= joint.2.amp-enable-out #net Z-fault => joint.2.amp-fault-in net Z-poscmd <= joint.2.motor-pos-cmd net Z-posfb => joint.2.motor-pos-fb #net Z-homed => joint.2.home-sw-in #net Home-Z <= joint.2.homing #net Z-inhibit => motion.feed−inhibit #net Z-PoT => joint.2.pos-lim-sw-in #net Z-NoT => joint.2.neg-lim-sw-in #net SpindleSpeedFB motion.spindle-speed-in ############################################ # Hardware section ############################################ #========================================== # Components declaration #========================================== #loadusr -W lcec_conf maurice.xml #loadrt lcec #addf lcec.read-all servo-thread #addf lcec.write-all servo-thread setp lcec.0.0.drivecontrol-1 1 setp lcec.0.0.drivecontrol-2 1 setp lcec.0.1.drivecontrol-1 1 setp lcec.0.1.drivecontrol-2 1 setp lcec.0.0.modecontrol-0 0 setp lcec.0.0.modecontrol-4 0 setp lcec.0.1.modecontrol-0 0 setp lcec.0.1.modecontrol-4 0 #========================================== # X axis #========================================== net X-amp => lcec.0.0.drivecontrol-3 => lcec.0.0.drivecontrol-0 net X-poscmd => lcec.0.0.poscommand net X-posfb <= lcec.0.0.pos net X-fault <= lcec.0.0.drivestatus-3 net X-stat-pos <= lcec.0.0.modestatus-3 net X-stat-home <= lcec.0.0.modestatus-2 net X-homingok <= lcec.0.0.drivestatus-12 net X-athome <= lcec.0.0.drivestatus-10 net X-ctrl-home => lcec.0.0.modecontrol-1 => lcec.0.0.modecontrol-2 net X-homestart => lcec.0.0.drivecontrol-4 net X-ctrl-pos => lcec.0.0.modecontrol-3 net X-PoT <= lcec.0.0.inputs-1 net X-NoT <= lcec.0.0.inputs-0 #========================================== # Z axis #========================================== net Z-amp => lcec.0.1.drivecontrol-3 => lcec.0.1.drivecontrol-0 net Z-poscmd => lcec.0.1.poscommand net Z-posfb <= lcec.0.1.pos net Z-fault <= lcec.0.1.drivestatus-3 net Z-stat-pos <= lcec.0.1.modestatus-3 net Z-stat-home <= lcec.0.1.modestatus-2 net Z-homingok <= lcec.0.1.drivestatus-12 net Z-athome <= lcec.0.1.drivestatus-10 net Z-ctrl-home => lcec.0.1.modecontrol-1 => lcec.0.1.modecontrol-2 net Z-homestart => lcec.0.1.drivecontrol-4 net Z-ctrl-pos => lcec.0.1.modecontrol-3 net Z-PoT <= lcec.0.1.inputs-1 net Z-NoT <= lcec.0.1.inputs-0 #========================================== #Tool Changer #========================================== net ToolChangeRequest iocontrol.0.tool-change net ToolPrepPocket iocontrol.0.tool-prep-pocket net ToolChangeOk iocontrol.0.tool-changed net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared #Panel Tool Selector net PanelTurret1 wsum.0.bit.3.in net PanelTurret2 wsum.0.bit.2.in net PanelTurret3 wsum.0.bit.1.in net PanelTurret4 wsum.0.bit.0.in net manualtool wsum.0.sum #Panel Feed Selector net FeedOv1 wsum.1.bit.3.in net FeedOv2 wsum.1.bit.2.in net FeedOv3 wsum.1.bit.1.in net FeedOv4 wsum.1.bit.0.in net FeedOv wsum.1.sum conv-s32-float.0.in net FeedOvF conv-s32-float.0.out net FeedOvF FeedScale.in setp FeedScale.gain -0.06666666666666666666666666666666666666667 setp FeedScale.offset 1 net FeedOverride FeedScale.out net RapidOv1 wsum.2.bit.1.in net RapidOv2 wsum.2.bit.0.in net RapidOv wsum.2.sum conv-s32-float.1.in net RapidOvF conv-s32-float.1.out net RapidOvF RapidScale.in setp RapidScale.gain -0.333333333333333333333 setp RapidScale.offset 1 net RapidOverride RapidScale.out net SpindlePot SpindleScale.in setp SpindleScale.gain 0.0000317581300813008 setp SpindleScale.offset -0.0137195121951 net SpindleOverride SpindleScale.out