MC_DigitalCamSwitch

Hello,

I am testing the FB MC_DigitalCamSwitch in order to activate an output when an axis passes through a given position.
As on the real machine the high speed module 8BAC0130 will be installed on the Acopos “Active Power supply” I made a test project with the following config:

My test code is really simple :

PROGRAM _INIT
	mpAxisBasic.Axis := ADR(gAxis01);
	mpAxisBasic.MpLink := ADR(gAxisBasic);
	mpAxisBasic.Parameters := ADR(mpAxisParam);

	mcCamSwitchRef.TrackNumber := 1;
	mcCamSwitchRef.FirstOnPosition[0] := 100.0;
	mcCamSwitchRef.LastOnPosition[0] := 250.0;
	mcCamSwitchRef.Period := 1000.0;
	mcOutputRef.Axis := ADR(gAxis01);
	mcOutputRef.Slot := 2;
	mcOutputRef.Channel := 0;
	mcDigitalCam.Axis := ADR(gAxis01);
	mcDigitalCam.Switches := mcCamSwitchRef;
	mcDigitalCam.Outputs := mcOutputRef;
	mcDigitalCam.TrackOptions := mcTrackRef;
END_PROGRAM

PROGRAM _CYCLIC
	mpAxisBasic(Enable := TRUE);
	mcDigitalCam();
END_PROGRAM

PROGRAM _EXIT
	mpAxisBasic(Enable := FALSE);	 
END_PROGRAM

With this project I’m able to start/stop the axis mapped on the power supply.
When I enable the MC_DigitalCamSwitch fb, this report an error 29217 : Invalid input parameter.
I do not see where is the error.
Can you help me?

Thank you in advance
Christian

Have you tried other channels, like 1-6?

I never used it … in Addition to the Channel it could also be the Hysteresis which is not given in your code.

I would recommend to check Logger or Network Command Trace, in one of them i would expect to see the causing Parameter.

Greetings
Michael

I tested two things:
1° In the config, replace the 8BAC0130.001 by 8BAC0130.000. I think this is better, the version 000 provide high speed output.
2° I tried with different channel N°.

After the 1° modif, I have now an other error : 29230 = Internal Error : Error Transfering parameter list.

Below the Network Command Trace.

I am not sure where the error is happening… but here some notes which are hopefully helpfull:

Greetings
Michael

How are you testing this ?
Is it in simulation mode PLC, or is it with real ACOPOS hardware, including the 8BAC0130 card?
If it is in simulation mode, the error is a normal error because the physical hardware is not available.

On ACOPOSmulti die Slot number is from the perspective of the axis or channel resp. and can only be 1.

On a power supply module a card can only be put in the right side slot which is Channel 2, Slot1.

An axis on Channel 2 needs to be used for operating the function block. Either the real axis in simulation mode or the virtual axis.

In the network command trace, we should see this:

2 Likes

Hello Martin,
i understood that he has to use the Axis Reference of Channel two, because only Slot1 is allowed. Which will look like this:

Acp10 Mapping:

    mcOutputRef.Axis := ADR(gAxis01);    // Channel 2
	mcOutputRef.Slot := 1;               // Slot 1 
	mcOutputRef.Channel := 1;            // Output of Module 

Greetings
Michael

2 Likes

Thank Michael but in OutputRef.Slot comment it is only indicated slot 2,3 or 4. And the 8BAC0130 can be inserted only in the slot 2.

I have try to use an axis mapped on the channel two but I still have the same issue.

Thank Martin,

I change the mapping of my axis to use the channel 2.
In the outputref.slot and outputref.channel I tried different configuration but without success.

As I understand, the slot is the slot number on the power supply, if I check in the hardware config, for me it is slot 2. In the outputref.slot comment it is indicated slot 2, 3 or 4.
The channel seems to be the output nbr on the 8BAC0130 module, can be 1 or 2 I think.

Hello Christian,

You mentioned “In the outputref.slot comment it is indicated slot 2, 3 or 4” , can you give a reference where this comment is located. Because the numbers 2,3,4 sounds more matching a classic ACOPOS (old white one, which had 4 Slots).

DIO - Digital I/O Interface

Here we can see that it is Functionblock instance no.1 available - which matches the information from martin.


Which Version do you use, because in one of the Help References i linked erlier it is noted that you will need a minimum Version of ACP10 V5.081

Unfortunately i do not have such a Plug-In Card available for own tests.

Greetings
Michael

I have found an example in a test project for the Acp10_mc library where a 8BAC0130.000-1 is used in the right side slot of an ACOPOSmulti inverter, for the PSM it must be the same.

Outputs.Axis = <Axis of module channel 2>
Outputs.Slot = 1
Outputs.Channel = 1; //output number on card

Just tested it, it works:

1 Like

Maybe it is a “problem” or limitation in case of the PSM.
When I set the slot = 1 I do not have the "DIO_CMD_SET_OUT_ENALE… comande in the network trace. The FB report an error 29217.
If I select the slot 2, I have this line in the network trace but with an error.

The comment is in the acp10_mc.typ file.
I use the last avalable ACP10 Version 5.26.1

It might be that for the PLCopen Functionblock only axis were considered.

But as the other Documentation mentioned Axis/Channel it is not absolutly clear what the firmware would support. Nevertheless i don’t think that a manual configuration would be helpfull for you.

You can consider to create an offical support ticket to clarify it.

Greetings
Michael

Hello,

I assume you need the high resolution/speed of the outputcard on the drive in combination with this FunctionBlock.

If not, you can also use one of the functionblocks from this library: ASMcDcs.
With adjustable “On-Compensation” and if the velocity of your axis is “constant”, you can also achieve a good accurany.

Regards,
Alexander

Hi, what is the status of this topic, have you found solution for you? Can you mark the reply that helped you the most?

Hi
Not yet. Next week I hope I will have oportunity to continues works on this.

please keep us updated :slight_smile:

I never found a solution to my problem.
I was in contact with B&R support but without success till now.

I change my plan and try with the x20DS4389 module and the ASMcDcs library.
It doesn’t work either but I’ll open another post for that.