Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
Hi,
config log ok now.
Window device Manager -> Update Driver for the Cifx Card.
Uncommend the tracelevel line in Hilscher cifx section.
Reboot RTE pc.
Give us then the Output of the plc logger.
BR
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Everything working smoothly, but now I should get the ethercat Process data to work (read/write) to use the modules efficiently.
Especially I should get one energy value cleared to 0 in EL3403 module. That is overall energy consumption, which you can only clear by writing 0004hex to 0xFB00:01.
Anyway, now I am trying more simple to understand how it works and try to get some reading possible first..
So, (correct me if I am wrong) the process data between ethercat master and slaveunits is in protocol CanOpen over Ethercat.
With Raspberry Pi there comes a library "iodrvethercat" which has function blocks to read/write to different locations with CoE.
Okay from there I pickup ETC_CO_SdoReadDWord, which is for reading doubleword.
From EL3403 manual I check the address to read L1 voltage, that would be (index; hex) 6000 : 12 (subindex), datatype is INT32 so DWORD.
So I add the function block to my PLC_PRG -programme and add the necessary values:
xExecute: TRUE
xAbort: FALSE
usiCom: 1 (EtherCat master No.)
uiDevice: 1005 (EL3403, slaveunit No.)
usiChannel: 1 (something not in use)
wIndex: 24576 (this because 6000hex -> is 24576dec) (is this right way????)
bySubindex: 12 (subindex)
udiTimeOut: 500 (timeout time)
Rest I leave empty. Compile gives no error. When running program, the function block gives error and error code, but I have no idea where can I check what it is.
I've been stuck with this for quite long already and its driving me crazy.
Do I need to have something else with this function block, like some struct or gvl or I need to put some tick somewhere to get it all working...?
Thank you advance for your help!
Best Regards,
-Juha
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Edwin Schwellinger hat geschrieben:
Hi Juha,
for me it looks like the subindex does not exists?
BR
Edwin
Thank you Edwin for quick response!
Seems you were absolutely right, because the subindex also is of course hex-format -> so it is not "12" but 18!
(Note to self I can mark hex values straigth by adding "16x" in front the value instead of converting to decimals.)
Unfortunately that was not the only flaw, because now I am getting error: ETC_CO_TIME_OUT.
-Juha
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tried, but for some reason it did not open the example for me.
Anyway, I found the problems...
Main problem was that I was not using TRIGGER in execute input. It wont work without it.
Now it is working. Also got the writing to work.
Thank you for your input!
//EDIT: Everything was instructed in front of me in online help F1, which I was frequently reading, but just there was no sample, so for Newbie it is quite hard to figure everything out from a scratch. Especially when you are not sure at all if there is even change to succeed.
-Juha
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2016-10-13
Originally created by: OW_RPi
Hi,
my EL6751 CAN MiniDriver occured some problems during download:
Error during download:
4 unresolved reference(s), 0 signature mismatch(es), 0 version mismatch(es) found!
The device version on the hardware seems to be different from the device version used in the project. Try to up-/downgrade the device in the project to match the actual version of the hardware.
Please take a look in the messages view for further details
I uninstalled the driver in device respository and try to install EL6751 again but the MiniDriver now is still missing.
How install the driver again?
Thanks!
BR
Oleg
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have set parameters in ControlCodesys, but not run slave in codesys. Why?
Help me, please.
Thank you.
Uncommend the last two for profibus and change them to Device.0
so?
what and how I have to change a device 0 ?
sorry
Thank you.
@Edmin
[[klzzwxh:0000]]
I have set the parameters, but problem not solved.
How change driver in Windows device Manager?
Help me, please.
Thank you.
Hi,
config log ok now.
Window device Manager -> Update Driver for the Cifx Card.
Uncommend the tracelevel line in Hilscher cifx section.
Reboot RTE pc.
Give us then the Output of the plc logger.
BR
Edwin
Hello all,
I am having issues also with CoE with Beckhoff modules.
I think my problem must be simple one, but I have understood something wrong...
So my setup:
Raspberry Pi 2 (as ethercat master)
Bechoff EK1100 (ethercat remote slave)
- EL1018 (DI)
- EL2008 (DO)
- EL3314 (Analog Temp.)
- EL3403 (Power Measurement)
Everything working smoothly, but now I should get the ethercat Process data to work (read/write) to use the modules efficiently.
Especially I should get one energy value cleared to 0 in EL3403 module. That is overall energy consumption, which you can only clear by writing 0004hex to 0xFB00:01.
Anyway, now I am trying more simple to understand how it works and try to get some reading possible first..
So, (correct me if I am wrong) the process data between ethercat master and slaveunits is in protocol CanOpen over Ethercat.
With Raspberry Pi there comes a library "iodrvethercat" which has function blocks to read/write to different locations with CoE.
Okay from there I pickup ETC_CO_SdoReadDWord, which is for reading doubleword.
From EL3403 manual I check the address to read L1 voltage, that would be (index; hex) 6000 : 12 (subindex), datatype is INT32 so DWORD.
So I add the function block to my PLC_PRG -programme and add the necessary values:
xExecute: TRUE
xAbort: FALSE
usiCom: 1 (EtherCat master No.)
uiDevice: 1005 (EL3403, slaveunit No.)
usiChannel: 1 (something not in use)
wIndex: 24576 (this because 6000hex -> is 24576dec) (is this right way????)
bySubindex: 12 (subindex)
udiTimeOut: 500 (timeout time)
Rest I leave empty. Compile gives no error. When running program, the function block gives error and error code, but I have no idea where can I check what it is.
I've been stuck with this for quite long already and its driving me crazy.
Do I need to have something else with this function block, like some struct or gvl or I need to put some tick somewhere to get it all working...?
Thank you advance for your help!
Best Regards,
-Juha
Hi Juha,
for me it looks like the subindex does not exists?
BR
Edwin
Thank you Edwin for quick response!
Seems you were absolutely right, because the subindex also is of course hex-format -> so it is not "12" but 18!
(Note to self I can mark hex values straigth by adding "16x" in front the value instead of converting to decimals.)
Unfortunately that was not the only flaw, because now I am getting error: ETC_CO_TIME_OUT.
-Juha
Hi Juha,
could you check with this example if the SDO read/write works?
http://store.codesys.com/ethercat-example.html
BR
Edwin
Hello Ewin,
I tried, but for some reason it did not open the example for me.
Anyway, I found the problems...
Main problem was that I was not using TRIGGER in execute input. It wont work without it.
Now it is working. Also got the writing to work.
Thank you for your input!
//EDIT: Everything was instructed in front of me in online help F1, which I was frequently reading, but just there was no sample, so for Newbie it is quite hard to figure everything out from a scratch. Especially when you are not sure at all if there is even change to succeed.
-Juha
Hi Edwin, can you send please some description to IODrvEtherCAT library?
For example ETC_SoE_IDNWrite, input/output description?
Hi Dray,
this example from CODESYS does covers everything you need (+ online help for the documentation):
http://store.codesys.com/ethercat-example.html
BR
Edwin
Originally created by: OW_RPi
Hi,
my EL6751 CAN MiniDriver occured some problems during download:
Error during download:
4 unresolved reference(s), 0 signature mismatch(es), 0 version mismatch(es) found!
The device version on the hardware seems to be different from the device version used in the project. Try to up-/downgrade the device in the project to match the actual version of the hardware.
Please take a look in the messages view for further details
I uninstalled the driver in device respository and try to install EL6751 again but the MiniDriver now is still missing.
How install the driver again?
Thanks!
BR
Oleg
Hi Edwin!
For some reason Codesys didn't notify me about your reply...
Here is my device tree...
Originally created by: OW_RPi
Hello,
I installed Codesys V3.5.9 Patch 3+.
Adding EL6751 CAN MiniDriver (V3.5.9.0) leads to following "unresolved reference" problems when downloading:
[FATAL ERROR] Unresolved reference: 'EL6751_AFTERREADINPUTS'
[FATAL ERROR] Unresolved reference: 'EL6751_BEFOREWRITEOUTPUTS'
[FATAL ERROR] Unresolved reference: 'EL6751_KILLCMD'
[FATAL ERROR] Unresolved reference: 'EL6751_REGISTERCMD'
I noticed that the library of CAN MiniDriver which is automatically added in the Library Manager has the version 3.5.8.0.
Might this cause the problems?
Can someone hlep, please?
How to install (where to download) compatible device description and library version?
Thanks!
BR
Oleg