Conversation
…' already used for an object in Library 'tc3_globaltypes_global - lclsgeneral, 1.0.0.0
| </PlaceholderResolution> | ||
| <PlaceholderResolution Include="Tc2_System"> | ||
| <Resolution>Tc2_System, * (Beckhoff Automation GmbH)</Resolution> | ||
| <Resolution>Tc2_System, 3.6.4.0 (Beckhoff Automation GmbH)</Resolution> |
There was a problem hiding this comment.
I'm concerned about these pins. Doesn't this mean the library will no longer be usable on the older 4024 projects?
There was a problem hiding this comment.
i may be wrong but this pins are temporary. we should indeed tag the latest/default version on the target. with this pin we can track the version that have been use to test these library on 4026.13. @NSLentz can shed some light on this as well.
There was a problem hiding this comment.
Restore Libraries to default. i'll create 4024 branches to unittest internal code fixes and add on.
ZLLentz
left a comment
There was a problem hiding this comment.
My only concern is the usability on older PLCs. Are we dropping support entirely for old PLCs or does this work on them? My intuition is that strict pins at the library level reduces our ability to be flexible here.
I'll approve if this has been tested on a real 4024 PLC too, or if we agree as a full team that it isn't important.
|
ZLLentz
left a comment
There was a problem hiding this comment.
Yann confirmed offline that this works on older PLCs too
Description
Migration of LCLS General Library to the latest TwinCAT, 4026.13
Changes made are on different project-level files for 4026.13 compilation. The visualization profile was updated to the latest version.
Motivation and Context
Upgrade Beckhoff PLC systems to latest TwinCAT software toolsuite (4026.13).
How Has This Been Tested?
The Library Unit test were run using the TwinCAT Usermode runtime result as shown below.

Note: Backward compatibility tests, the project library references pins were removed, and a runtime test was performed under 4024.56(my development lab only supported this version). Test results can be seen below.
Additional compatibility tests were run on 4022.30 Live PLC as show below:

Where Has This Been Documented?
A change was made in the declaration of
fileTime: T_FILETIME;to fix the error:Error SA0027: Variable name 'fileTime' in 'FB_UnixTimeStamp' already used for an object in Library 'tc3_globaltypes_global - lclsgeneral, 1.0.0.0 (beckhoff automation gmbh)' LCLSGeneral (LCLSGeneral\LCLSGeneral) C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\Functions\FB_UnixTimeStamp.TcPOU (Decl) 30Fix: The variable was renamed:
stfileTimethroughout the 'FB_UnixTimeStamp' POU.C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\Hardware\FB_ThermoCouple.TcPOU (Decl)(6) : warning: C0373: Function Block FB_ThermoCouple is deprecated and may be removed in a future release C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setBit (Impl)(2) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setBit' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setBit (Impl)(5) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setBit' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setBit (Impl)(5) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setBit' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setBit (Impl)(9) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setBit' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setBit (Impl)(10) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setBit' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setBit (Impl)(12) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setBit' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setMessage (Impl)(1) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setMessage' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\EPS\FB_EPS.TcPOU@setDescription (Impl)(1) : warning: C0371: Access to VAR_IN_OUT 'eps' declared in 'FB_EPS' from external context 'setDescription' C:\Users\ysmandza\Documents\lcls\lcls-twincat-general\LCLSGeneral\LCLSGeneral\POUs\Tests\FB_CircuitBreaker_Test.TcPOU@SingleBadLogger (Impl)(7) : warning: C0195: Implicit conversion from signed Type 'INT' to unsigned Type 'UINT' : Possible change of sign Compile complete -- 0 errors, 10 warningsThis warning
Implicit conversion from signed Type 'INT' to unsigned Type 'UINT'fix by wrapping type conversion as below:INT_TO_UINT(GVL_LOGGER.nMinTimeViolationAcceptable)Proposed fixed based on Beckhoff info docs: check the validity of the var_in_out var in the method before any access. one can then choose to disable the warning in project properties.
Below are the reference placeholders for pinned dependencies (4026 only) we reverted to the default placeholder for backward compatility tests.

Pre-merge checklist
Always Newestversion (Library, *)pre-commitor ranpre-commit run --all-files