Hello Guest it is April 26, 2024, 09:47:57 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - DanielS

Pages: 1 2 3 4 5 »
1
Mach4 General Discussion / Re: add instance to mach4
« on: April 23, 2022, 08:21:56 AM »
Hi mjzrpr
I have the same task as you, namely to retrofit a Cincom Citizen L20 machine (swisstype) . I also chose Mach4 because I have a lot of options for modifying the software.
I will use two PCs, and I will make the synchronization commands through macros.
Do you want to keep the electronics of the machine, or do you put a new one? Mine had the electronics from Mitsubishi and I will replace it with the one from DMM.
These machines have three types of synchronization, Spindle synchronization (rpm), axis synchronization and axis and spindle synchronization.
The problem with this retrofit is that not being a dual control you can't have a full closed loop feedback like the original.
If the chuck closure is hydraulic for you, you get rid of it easier than me, because mine it's also on the servomotors and it can be adjusted from the software, meaning almost two other axes torque controlled.
I will use a single screen with an input from an HDMI Multi viewer, which will receive the signal from the two PCs.
The controllers I will use for the machine will be two PoKeys57CNC with 5 PoExtBusOC16 and one PoKeys57U as external PLC.
It's a complicated project, but interesting!

2
Mach4 General Discussion / Re: Mach4 PMC Cycle Start problem
« on: April 22, 2022, 02:21:16 PM »
Hi JBUEHN
I made a script for cycle start and now it is functional for MDI as well.
It's a pity that the PMC doesn't work properly, I had another problem with it, after doing enough program lines I couldn't open it except with the new version 2.0.4612, in the old version 2.0.4300 it can't be open anymore, and honestly the new version doesn't really appeal to me, it has a lot of moodiness.
Thanks!

3
Mach4 General Discussion / Re: Mach4 PMC Cycle Start problem
« on: April 22, 2022, 04:35:31 AM »
Thanks for the reply.
So theoretically it would be more functional to make a script to link the external button directly to the Cycle Start button on the screen !?
However, it is strange to build a Cycle Start in PMC that does only half of what it should!

4
Mach4 General Discussion / Mach4 PMC Cycle Start problem
« on: April 21, 2022, 11:03:55 AM »
Hello
I used an external button via the PMC for the Cycle Start command.
The button works perfectly for the cycle start of a program but does absolutely nothing for MDI.
Do you have any idea why MDI differs from the window where the program is loaded (Gcode)?

5
Hi
Unfortunately you can't, because what you want is made by a rotary axis (usually the C axis) that can only be operated by a servomotor.
In general, lathes that have a C axis have an additional motor (Servomotor) that is engaged when needed, becoming an axis that can be synchronized with the rest of the axes.
There are also Spindles that can synchronize with the rest of the axes (C axis), but the controller is a bit more special.
Your problem is that you have a normal motor controlled by a VFD on the spindle.
Even if you want to do spindle indexing, you will need the Z channel of the encoder, because the first thing the spindle will do, will be to check the starting point given by the Z channel pulse, depending on it will make the required position.
If you could implement in mach 3 both the encoder and the hall sensor, as a Z pulse, then you could do indexing.

6
Hi
In an encoder, channels A and B give you the points per rotation (ppr) for an exact position of the motor shaft and are used for servomotors. For the spindle, there must always be a Z channel that gives you a signal per rotation. So what you had before with the hall sensor is ok, with the encoder with only A and B channels on a normal motor you don't do much .

7
General Mach Discussion / Re: Mach 3 Turret with ClearPath motor
« on: June 01, 2021, 12:14:19 PM »
Hello
I am totally overwhelmed by programming in mach3, so I did a test in mach 4 and it works . I leave the code here, maybe someone else needs it.
The code is not complete because in my case the code will run depending on the unlocking and locking of the turret, which means other program lines for inputs.
Code: [Select]
function m6()
local rc = 0;
    --local inst = 0; -- mc.mcGetInstance(mInst)
local inst = mc.mcGetInstance()
local selectedTool = mc.mcToolGetSelected(inst)
selectedTool = math.tointeger(selectedTool)
local currentTool = mc.mcToolGetCurrent(inst)
currentTool = math.tointeger(currentTool)

if selectedTool == currentTool then
mc.mcCntlSetLastError(inst, "Current tool == Selected tool so there is nothing to do")
else

        mc.mcCntlSetLastError(inst, "Change to tool " .. tostring(selectedTool) .. " and press start to continue") --Message at beginning of tool change
--mc.mcCntlToolChangeManual(inst, true) --This will pause the tool change here and wait for a press of cycle start to continue
mc.mcCntlSetLastError(inst, "Current tool == " .. tostring(selectedTool) .. "   Previous Tool == " .. tostring(currentTool)) --Message that shows after Cycle Start
mc.mcToolSetCurrent(inst, selectedTool)

     if selectedTool == 1 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(100)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);

else

    if selectedTool == 2 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);


else

    if selectedTool == 3 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);

else

    if selectedTool == 4 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);


else


    if selectedTool == 5 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);


       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);

else


       if selectedTool == 6 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);


else


    if selectedTool == 7 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);


       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);

else


  if selectedTool == 8 then
 
hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)

hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 1);
wx.wxMilliSleep(50)


hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT2); 
mc.mcSignalSetState(hsig, 0);


       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);
       wx.wxMilliSleep(1500)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 1);
   wx.wxMilliSleep(100)

       hsig, rc = mc.mcSignalGetHandle(inst, mc.OSIG_OUTPUT3); 
       mc.mcSignalSetState(hsig, 0);




--Remove this line if you would not like the Z axis to move
--mc.mcCntlGcodeExecute(inst, "G90 G53 G0 Z0.0");--Move the Z axis all the way up
--mc.mcCntlSetLastError(inst, "Change to tool " .. tostring(selectedTool) .. " and press start to continue") --Message at beginning of tool change
--mc.mcCntlToolChangeManual(inst, true) --This will pause the tool change here and wait for a press of cycle start to continue
--mc.mcCntlSetLastError(inst, "Current tool == " .. tostring(selectedTool) .. "   Previous Tool == " .. tostring(currentTool)) --Message that shows after Cycle Start
--mc.mcToolSetCurrent(inst, selectedTool)
end
end
end
end
end
end
end
end
end 
end

if (mc.mcInEditor() == 1) then
m6()
end

I'm missing something with the script in mach 3 because he doesn't like anything I write. It is clear that I need more help!

8
General Mach Discussion / Re: Mach 3 Turret with ClearPath motor
« on: May 31, 2021, 08:16:59 AM »
Hello
Thanks for the help. If I understood correctly, it's something like that!

9
General Mach Discussion / Mach 3 Turret with ClearPath motor
« on: May 31, 2021, 04:06:58 AM »
Hello
I want to make a turret with a ClearPath MCPV motor that gives me the option to select 16 positions that can be controlled by two pins, one Index and one Trigger.
The problem is that on the index pin I need a number of pulses equal to the position I want (Eg. position 6 - 6 pulses), after which a pulse on the trigger pin and the motor executes.
There is the possibility to do this in the script and if so what the script would look like. I know how to output a signal to a script, but I don't know how to give a no. of pulses according to a T code.
You can guide me on how the script should look like.
What is good about this motor is that if you ask for the position it is already in, it does not make any other movement, and the reference it is made at a point of your choice.
Thanks

10
Mach4 General Discussion / Re: Mach 4 PMC error
« on: April 29, 2021, 01:41:23 AM »
Hello Steve
I have licensed version 4.2.0.4300, and the ladder was made directly in the software.
There is a limit to how many rows a ladder can have?
I also made smaller programs that I can still open, the one that I can no longer open is also the largest.
Yesterday I installed version 4.2.0.4612, the demo version, to see what is new, and out of curiosity I tried the ladder that did not open on the 4300 and to my surprise it opened.
I don't know if I can upgrade to the new version without altering the license, nor do I know if it's stable, as far as I can tell it's being tested intensively now.
If there is no solution to open the ladder in 4300 I just have to use the demo version of 4612 to open it and modify it.
But this is a temporary solution, because it means always having a second PC with version 4612 next to the machine in case you need to change something in the ladder, at least until you finish the settings of the machine.

Thanks.

Pages: 1 2 3 4 5 »