Closed rerpha closed 2 years ago
For now we can work around this like so: https://github.com/ISISComputingGroup/ibex_developers_manual/wiki/Beckhoff#if-a-controller-has-more-than-8-axes
Right, i'm not sure I have the skills to do this, and I'm thinking that whoever picks it up may do but this will take some effort to get working. What I'm thinking of doing for now is just assuming there is contiguous space after setting a beckhoff to a motor controller, and wrap around after 8.
for example for a beckhoff with 12 drives:
MTR0101-08 are the first 8 axes MTR0201-04 are the last 4 axes
this is something that can be done in lua fairly easily so I think it's a far more time effective solution as I haven't done enough GUI work to jump in and try and make this future proof for all controllers. I can't see Galils, SM300s etc ever needing that functionality so although it would be nice to make this generalised I can't really see any real world benefits besides the obvious needing to have no more controllers after the beckhoff MTRCTRL.
PRs:
Have also updated https://github.com/ISISComputingGroup/ibex_developers_manual/wiki/Beckhoff#if-a-controller-has-more-than-8-axes
To test: set up BeckhoffTestRunner as described here: https://github.com/ISISComputingGroup/ibex_developers_manual/wiki/Beckhoff#testing Note that this will try and simulate a controller with 9 axes, so on master the 9th axis will not show up in the table of motors.
check out ioc\master, no need to make
as this code is called at IOC startup, and run beckhofftestrunner. There is a test that should check if the motor is aliased.
Also need to execute win8settick.bat
in C:\TwinCAT\3.1\System
to be able to run emulator - have updated wiki
Tests seem to fail with
TWINCATCONFIG set from environment as C:/devel/BeckhoffTestRunner/tests/../PLC_solution/solution/tc_project_app
invalid TPY file given: C:/devel/BeckhoffTestRunner/tests/../PLC_solution/solution/tc_project_app/tc_project_app.tpy
Failed to open input C:/devel/BeckhoffTestRunner/tests/../PLC_solution/solution/tc_project_app/tc_project_app.tpy.
lua: stdin:18: attempt to call a nil value (field 'countdbgrep')
stack traceback:
stdin:18: in function 'twincat_stcommon_main'
(...tail calls...)
should build.bat
generate a typ
?
Building without UI
WARNING: Folder not found: C:\devel\BeckhoffTestRunner\\test_config\deviceXmls\, No devices will be loaded
IO XML Import complete
NC Parameter import complete
PLC declarations updated
WARNING, application folder C:\devel\BeckhoffTestRunner\\test_config\plc\applications does not exist
Application Specific PROGs imported
Axis PROGs imported
PROG action updated
PLC compiled
Import mappings complete
Tests seem to fail with
TWINCATCONFIG set from environment as C:/devel/BeckhoffTestRunner/tests/../PLC_solution/solution/tc_project_app invalid TPY file given: C:/devel/BeckhoffTestRunner/tests/../PLC_solution/solution/tc_project_app/tc_project_app.tpy Failed to open input C:/devel/BeckhoffTestRunner/tests/../PLC_solution/solution/tc_project_app/tc_project_app.tpy. lua: stdin:18: attempt to call a nil value (field 'countdbgrep') stack traceback: stdin:18: in function 'twincat_stcommon_main' (...tail calls...)
should
build.bat
generate atyp
?
Yes it should. This may be to do with #6817 - it should have spat out a .tpy file in plc_solution\mc_project_app\
Did you do a recursive submodule init from BeckhoffTestRunner?
Yes I had tried that. What seemed to work was deleting the repository and doing an initial git clone --recursive
. Had to try clone a few times as got intermittent failures to bitbucket, is that still the correct place for the ESS PLC solution? An immediate build.bat and this then gave me a tpy. that it loads, but it complains about channel names too long. Now seems to pass, but I am concerned about the channel name issues - it looks like it is trying to creating lots of pvs that are too long? There are also errors in the ioc log like
2021/12/24 15:13:30.504 Failed to poll axis 1: PV TE:NDW2127:ASTAXES_2:STSTATUS-BENABLED in alarm with status 17 and severity 3
is that expected?
yes, i get it whenever i start TWINCAT, not sure why, seems to remedy itself within a few seconds.
bitbucket is still the location for the ESS' tc_mca_std_lib - https://bitbucket.org/europeanspallationsource/tc_mca_std_lib
Yes some of the things in the tpy file/axes struct have too long names, but I don't think the variables are anything important
As a developer I would like to display more than 8 axes per controller on the ToM for a Beckhoff if needs be. This is required for SANS2D as their stober drives that are replacing the baldors/guides total to 12 axes on one controller.
Acceptance Criteria
Extra Information
We have had some discussions, some documented in https://github.com/ISISComputingGroup/IBEX/issues/6755 and some in-person, and we think the best way of implementing this would be to: