i have a rather ambitious project on my hand. I need to convert my Weiler DZ26 as of today my old 810T control finally went the way of the dodo.
I´ve put so much time and effort into keeping that old thing running and making it jump through hoops via CAD/CAM and my own postprocessor, but enough is enough.
My plan is to get basic turning functionality working and look into millturn operation later.
In general the machine is a dynamic (20m/min), high acceleration monster(for its time), with a super quick Sauter 12 station toolchanger (all stations driven).
I plan on using the original Siemens drives and motors. Both spindles need to run in high- or low drive modes for A-axis operation and toolchanging modes. Both spindles have two encoders for high rpm operation and low rpm positioning. The Control need to switch a number of accessories like coolant pump, self oiler, solenoids for mode switch of the tool changer and so on...
I will start with a kind of allright office PC to get it up and running and plan on switching to a proper industrial PC later on.
From what i have read over the years if you have a dynamic machine, your better served with PCIE based mesa boards.
My current plan is getting myself a 6i25 and a 7i77 breakout board. Should have enough I/O for my needs and PCIE should keep it rather real time.
Do you have any suggestions and/or questions? I will document my progress over here and definetly need some help every once in a while.
What would be your recommended GUI for a machine like that? I have next to no experience in LinuxCNC, but are pretty decent in all kinds of Siemens controls.
HaHa Don't I feel stupid. I guess that's how my day has gone. It didn't even occur to me that [] meant put in your own value
Now to look even more stupid. How many channels does the 7i77 have, and how do I know what is on each channel. Is it a channel per drive or just i.o on one, drives on another, encoders on another and so on. until earlier today I didn't know there was more than 2 and I didn't really know they were channels of the card I just thought that was the address of the whole card.
I have alot to learn.
I managed to get the addressing working for the spindle analogout but spindle doesn't work still. Keep plugging away.
Address is hm2_7i76e.0.7i77.0.3. I never thought of a three until I asked for a error report and it showed me the pins.
I have finally managed to get my 4 step/dir axis working, but still having trouble with the analog servo spindle drive. I get errors for addressing for the output
hm2_7i76e.0.7i77.0.1.analogout5 I have tried with .5. I have tried 7i77.0.2.
it keeps saying anything with that address doesn't exist,
The attached control circuit will disable the spindle and servos of the machine if an Estop push button (PB) is pressed or change tool is requested. The arrangement is combination of both software and external hardwired circuit.
To stop any movement of the machine, the approach uses estop and reset pins of the halui component and redundant hardwired external circuit to disable any movement of the machine. The interface between the software and the hardwired circuit is done through digital I/O (2 or 3 inputs and two outputs).
Operation of this system is follows:
If an Estop PB is activated or tool change is requested machine will go into an Estop state.
If only Estop is activated, operator is required to press push button reset to enable spindle and servos
If tool change is requested, operator is required to change the tool, press tool changed PB (either hardwired or UI) and press reset PB to reset the estop and continue operation. (I know operators don’t like to press two buttons sequentially in certain order, but for their hands and fingers sake the extra mental challenge makes it worthwhile, I think!.
On the left side of the sheet is the electrical schematic. Showing use 5 relays. If you decide to use this circuit you need to determine the number of contacts normally open and normally closed before ordering the relays. The MCR contacts connection to servos and VFD are hardware dependent (if you need help with this part of the diagram ask)
On the right side is a postgui block diagram reflecting net listing of hal file see below.
# signal/wire connected Pins
#--+
+
net estop.activate.sig halui.estop.activate and2.1.in1 flipflop.0.out
net estop.is-activated.sig halui.estop.is-activated and2.0.in1 flipflop.0.reset hm2-7i92.0.7i77.0.0.output-00
net estop.reset.sig halui.estop.reset and2.0.out
net external.reset and2.0.in0 hm2-7i92.0.7i77.0.0.input-01
net external=estop flipflop.0.set hm2-7i92.0.7i77.0.0.input-00
net t.prepare.loop iocontrol.0.tool-prepared iocontrol.0.tool-prepare
net t.xch.done hal_manualtoolchange.changed iocontrol.0.tool-changed
net tool-changed or2.0.in0
net tool-xch.request hal_manualtoolchange.change iocontrol.0.tool-change hm2-7i92.0.7i77.0.0.output-01
net tool.changed or2.0.out and2.1.in0
net tool.changed.button hal_manualtoolchange.change_button and2.1.out
net tool.number hal_manualtoolchange.number iocontrol.0.tool-prep-number
net ui.tool.change.pb or2.0.in1
This is what my hal shows for one of my axis servos, should be stp/dir. Does this look like a step/dir or analog code.
#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.000500
net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output
net x-output => hm2_7i76e.0.7i77.0.3.analogout0
net x-pos-cmd joint.0.motor-pos-cmd
net x-enable joint.0.amp-enable-out
# enable _all_ sserial pwmgens
net x-enable hm2_7i76e.0.7i77.0.3.analogena
net x-pos-fb <= hm2_7i76e.0.encoder.01.position
net x-vel-fb <= hm2_7i76e.0.encoder.01.velocity
net x-pos-fb => joint.0.motor-pos-fb
net x-index-enable joint.0.index-enable <=> hm2_7i76e.0.encoder.01.index-enable
net x-pos-rawcounts <= hm2_7i76e.0.encoder.01.rawcounts
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in