Help needed to get my 7i76E + 7i85S + 7i73 on my mill going.

More
10 Sep 2018 16:08 #117296 by tecno

tecno wrote: Edited comp file

int speeds[15] = {0, 125, 160,

Deleted 80 so now first gear goes from 0 to 125 (I can live with that ;) )

All gears work up to 1000rpm (not running at correct speeds that I have to tune) with gear settings.

But all gears over 1000rpm involve motor to be set at high speed does not work.


This must be the problem == No output for motor-high

component GB_2speed;

pin in bit spindle-enable-in;
pin out bit spindle-enable-out;
pin in float spindle-speed-in;
pin out float motor-speed-out;

pin in bit gear-high;
pin in bit motor-high; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< !!!
pin in bit gear-A;
pin in bit gear-B;
pin in bit gear-C;
pin in bit gear-D;
pin in bit gear-E;

pin out unsigned gear-required;
pin out bit message-##[14];

license "gpl";


How can this be solved? Not interested to have a manual switch for this if possible to have it in comp/hal.
More
10 Sep 2018 18:27 #117305 by tecno
How do I tie motor-high to get output ?

component GB_2speed;

pin in bit spindle-enable-in;
pin out bit spindle-enable-out;
pin in float spindle-speed-in;
pin out float motor-speed-out;
pin out bit motor-high;

pin in bit gear-high;
pin in bit motor-high;
pin in bit gear-A;
pin in bit gear-B;
pin in bit gear-C;
pin in bit gear-D;
pin in bit gear-E;

pin out unsigned gear-required;
pin out bit message-##[14];

license "gpl";
function _;

;;

FUNCTION(_){
int actual, message, motor_max_speed;
int i;
// These need to be edited to suit the gearbox
int speeds[15] = {0, 125, 160, 215, 270, 360, 450, 595, 750, 1000, 1191, 1500, 2500, 0x1P30};
int reqd_gear[15] = {0x0, 0x01, 0x21, 0x02, 0x22, 0x04, 0x24, 0x08, 0x28, 0x10, 0x48, 0x68, 0x50, 0x70, 0x0};

if (spindle_speed_in == 0) return;
actual = (motor_high * 0x40 + gear_high * 0x20 + gear_A * 0x10 + gear_B * 0x08 + gear_C * 0x04 + gear_D * 0x02 + gear_E * 0x01);
for (i = 0; spindle_speed_in > speeds && i < 14; i++);
gear_required = reqd_gear;
if (gear_required == actual && gear_required != 0x0){ // We are in the right gear
spindle_enable_out = spindle_enable_in;
if (motor_high)
motor_max_speed = 2500;
else
motor_max_speed = 1850;
motor_speed_out = motor_max_speed * (spindle_speed_in / speeds[i+1]);
message = 0;
} else {
int j;
motor_speed_out = 0;
spindle_enable_out = 0;
for (j = 0; j < 13; j++) { message(j) = 0; }
message(i) = 1;
}
}
More
11 Sep 2018 14:44 #117339 by tecno
Have modified comp to this
component GB_2speed;

pin in bit spindle-enable-in;
pin out bit spindle-enable-out;
pin in float spindle-speed-in;
pin out float motor-speed-out;
pin out bit motorhighspeed;

pin in bit gear-high;
pin in bit motor-high;
pin in bit gear-A;
pin in bit gear-B;
pin in bit gear-C;
pin in bit gear-D;
pin in bit gear-E;

pin out unsigned gear-required;
pin out bit message-##[14];

license "gpl";
function _;

;;

FUNCTION(_){
	int actual, message, motor_max_speed;
	int i;
	// These need to be edited to suit the gearbox
	int speeds[13]    = {0,    125,  160,  215,  270,  360,  450,  595,  750, 1000, 1191, 1500, 2500};
	int reqd_gear[13] = {0x0, 0x01, 0x21, 0x02, 0x22, 0x04, 0x24, 0x08, 0x28, 0x10, 0x48, 0x68, 0x50, 0x70};

	if (spindle_speed_in == 0) return;
	actual = (motor_high * 0x40 + gear_high * 0x20  + gear_A * 0x10 + gear_B * 0x08  + gear_C * 0x04 + gear_D * 0x02 + gear_E * 0x01);
	for (i = 0; spindle_speed_in > speeds[i] && i < 12; i++);
	gear_required = reqd_gear[i];
	motorhighspeed = reqd_gear[i] & 0x40 ? 1 : 0;
	if (gear_required == actual && gear_required != 0x0){ // We are in the right gear
		spindle_enable_out = spindle_enable_in;
		if (motor_high)
                   motor_max_speed = 2500;
                else
                   motor_max_speed = 1850;
		motor_speed_out = motor_max_speed * (spindle_speed_in / speeds[i+1]);
		message = 0;
	} else {
                int j;
		motor_speed_out = 0;
		spindle_enable_out = 0;
		for (j = 0; j < 13; j++) { message(j) = 0; }
                message(i) = 1;
	}
}


And this in hal
# Motor High
net motor-high-signal <= GB-2speed.0.motorhighspeed
net motor-high-signal => hm2_7i76e.0.7i76.0.0.output-10
net motor-high-signal => GB-2speed.0.motor-high

Will try to test maybe later today or tomorrow, any comments ?
More
11 Sep 2018 14:52 #117340 by andypugh
I have explained twice now that I don't think that an _output_ for motor high is a good idea. Instead the comp is written to use an _input_ that shows that motor-high is engaged.
More
11 Sep 2018 14:57 #117341 by tecno
So what you say is that it should be manually actuated?

If so then it is better to redo all and always have highspeed ON as I have used before. Just a bit worried if I get full torq at low speeds that really concerns me as I have seen the *dark side* of that destroying parts and tools when X and/or Y pushes on with spindle at halt.
More
11 Sep 2018 16:52 - 12 Sep 2018 09:03 #117353 by tecno
OK, here is a new table and comp file. Can you have look and see if there is any boo boos. Now 10 gears

This browser does not support PDFs. Please download the PDF to view it: Download PDF

Attachments:
Last edit: 12 Sep 2018 09:03 by tecno. Reason: added data
More
12 Sep 2018 09:05 #117383 by tecno
Some typos edited but I get nothing out to VFD

File Attachment:

File Name: GB_3speed_...-12.comp
File Size:1 KB

File Attachment:

File Name: GB_3speed_...9-12.hal
File Size:19 KB


Attachments:
More
14 Sep 2018 12:24 - 14 Sep 2018 12:25 #117518 by andypugh
In the screenshot, it is waiting for you to satisfy the conditions specified in message 2 (Gear 33, ie 0x21)
Last edit: 14 Sep 2018 12:25 by andypugh.
More
14 Sep 2018 12:51 #117524 by tecno
It is fulfilled Gear E =1 + High Gear =32 ===total 33, this is how I read it.

Im sure there must be a typo hidden somewhere but I just seem to find it.
More
14 Sep 2018 13:12 #117526 by tecno

File Attachment:

File Name: GB_3speed_...-14.comp
File Size:1 KB


With above I can only run Gear E 0-100rpm, other gear settings/S commands nothing out to VFD.

S100 = runs at 135rpm
S50 66.5rpm
S10 12rpm

E + High gear 101 - 200rpm
S200 123rpm
S150 92rpm
S101 61rpm

There must be some errors in the comp code, but I cannot figure out what.
Attachments:
Moderators: cmorley
Time to create page: 0.287 seconds
Powered by Kunena Forum