Release date: 19.09.2022
System requirement
System | Recommendation |
---|---|
UP connect | UP - UPconnect V1.7.0 |
OS | Win 7/8.1/10, macOS Monterey |
OS Architecture | 64 Bit |
Processor | 64 Bit |
RAM | 8 GB |
Disk | SSD |
Download
The complete package can be downloaded from the AVM Cloud.
Bugs / Features / Improvements
Bug
- [AVMASPDEV-2132] - GlobalVariable generate DefaultValue
- [AVMASPDEV-2825] - Wrong Unit generated in ServiceUI json file
- [AVMASPDEV-2826] - Error without DefaultValue on EnumType
- [AVMASPDEV-2831] - Invalid notation in test report
- [AVMASPDEV-2832] - Statename duplicated - Siemens tia constant is not case sensitive
- [AVMASPDEV-2852] - Identifier "STATE" is contained twice in the state diagram
- [AVMASPDEV-2853] - Special character in message text leads to ServiceMode
- [AVMASPDEV-2863] - Invalid number of loop variables for interface data limit (ii0, ii1, ...)
- [AVMASPDEV-2879] - Array not supported on GlobalVariableLibrary (Siemens)
- [AVMASPDEV-2892] - Invalid d_par_1.cnc file for array variables
- [AVMASPDEV-2903] - Autocompletion adds additional wrong code
- [AVMASPDEV-2912] - Default string without letters not in file f_cnf
- [AVMASPDEV-3012] - No access to global variables in extended controller
- [AVMASPDEV-3013] - Method override not possible more than once
- [AVMASPDEV-3025] - Wrong Unit generated in ServiceUI json file (develop)
Story
- [AVMASPDEV-2199] - UPAct: Report Summary as log entry
- [AVMASPDEV-2555] - ChildIterator Method indexOf(CtrlID)
- [AVMASPDEV-2658] - UPAct TestValueEnum
- [AVMASPDEV-2905] - Comfort function IF.getState(state, except) and setCommand(cmd, except) on the interface
- [AVMASPDEV-2968] - UPact-JUnit: Distinction of error vs. failure -> Correct representation in report
Task
- [AVMASPDEV-2473] - Persistent for CustomDataGroup (B&R)
- [AVMASPDEV-2477] - Clean up deprecated VCVisu und AVM_MessageHandler
- [AVMASPDEV-2494] - Remove option remanent from local controller variables
- [AVMASPDEV-2656] - Cast expression in CodeSnippet
- [AVMASPDEV-2829] - MQTT invalid online flag via external broker
- [AVMASPDEV-2868] - Remove cmdState from common interface
- [AVMASPDEV-2871] - Review getRootDatatypeLibrary
- [AVMASPDEV-2878] - Warning with Beckhof Statelog
- [AVMASPDEV-2880] - Mapping of sample time could make more sense to be before Controller init
- [AVMASPDEV-2894] - Init and remanent option with custom data group (B&R)
- [AVMASPDEV-2901] - New library AEMqttInterface V1.1.0
- [AVMASPDEV-3021] - new Actifsource Version: 11_2_0_202209061815
- [AVMASPDEV-3027] - BR MQTT Lib 0.6.1
- [AVMASPDEV-3028] - Accelerate unittest
- [AVMASPDEV-3041] - New Actifsource Version 11_2_0_202209141505
Refactorings
Datatype library dependency
Execute generic refactoring UP: Datatype library dependencies.
InterfaceData_deprecated (Parameter, Config, Recipe, Current)
It is strongly recommended to upgrade to migrate deprecated interface data to InterfaceData with dataGroup allocation.
- Check if some current data has remanent true flag set at controller interface specific "CurrentDec".
- If true and B&R platform is used, find a solution for remanent current data points:
- If data point must be at Current data group: use UP 4.0.0 (optional) Declare deprecated data object config with remanent Currrent Data (consider that refactoring must be executed before migrating to new custom data group.
- If data point is moveable to another data group: Create a new Data group with Remanent handler mode. Move data points from Current to new Data group (Better solution, since no deprecated element is required).
- If true and B&R platform is used, find a solution for remanent current data points:
- Use available refactoring: 3.26.2 UP: (optional) Replace deprecated interface data
InterfaceData_deprecated data type will be removed with next UP releases.
B&R
- While using B&R Project, delete all data objects (Logical/DataObjects) at target folder before generating with new UP version. Since templates for DataObjects replaced for new custom data group support.
- VariableInitMisc with user file handler is not supported anymore. No generic refactoring available for that, since variables must be moved to another data group.
Remanent store options
- Remove init and file handler options from B&R config and create new remanent store options.
- Please make a screenshot of file handler init options before update to UP 4.0.0.
- Define new remanent store options:
- Use same mode than with old file handler config, but please check all modis, it actual setting is still reasonable.
- Consider that mode3_FileDefaultAutoInit ist suggested instead of mode2_FileDefault!
- Use old: remanentStore / store / taskClass for new taskClassRemanentHandler
Controller local variable remanent (B&R)
Controller local variable at interface local has no remanent property anymore. Since this property had no effect at Beckhofff and S7 Tia. Some changes only required for B&R projects:
- Create a new remanent custom data group.
- Set mode "mode4_RemanentHandler" for this data group at B&R remanent store options.
- Move local variable to specific interface with declared custom data group.
Command state list
If.IFC.Info.stCmdState is not part of UP anymore. For projects who are using command states. Extend common interface at project.
Ressources
Some ressources moved to communicaty repository:
- CommandStateDatatypeLibrary (7a4390be-07fa-11ed-ac1e-c351ac9ebbf5)
- TYP_CommandStateList
- TYP_CommandState
- NR_COMMANDS
- CommandStateFunctionLibrary (8ec03b4c-07f8-11ed-ac1e-c351ac9ebbf5)
Function implementation was implemented hard coded, copy it to internal B&R library or use Function with a FunctionModel instead.setCmdState
(* Set the state of a command ((0= Invisible / 1= Enabled / 2= Disabled / 3= DisabledMassage) *) FUNCTION setCmdState setCmdState := -1; FOR usi_Index := 0 TO NR_OF_MAX_CONTROLLER_COMMANDS BY 1 DO IF (stCmdState.aCmdList[usi_Index].uin_CommandID = uin_Command) THEN stCmdState.aCmdList[usi_Index].usi_State := usi_State; usi_Index := NR_OF_MAX_CONTROLLER_COMMANDS; setCmdState := 0; END_IF END_FOR END_FUNCTION
getCmdState
(* Get the state of a command ((0= Invisible / 1= Enabled / 2= Disabled / 3= DisabledMassage) *) FUNCTION getCmdState getCmdState := -1; FOR usi_Index := 0 TO NR_OF_MAX_CONTROLLER_COMMANDS BY 1 DO IF (stCmdState.aCmdList[usi_Index].uin_CommandID = uin_Command) THEN getCmdState := stCmdState.aCmdList[usi_Index].usi_State; usi_Index := NR_OF_MAX_CONTROLLER_COMMANDS; END_IF END_FOR END_FUNCTION
getCmdIndex
(* Get index of command *) FUNCTION getCmdIndex getCmdIndex := -1; FOR usi_Index := 0 TO NR_OF_MAX_CONTROLLER_COMMANDS BY 1 DO IF (stCmdState.aCmdList[usi_Index].uin_CommandID = uin_Command) THEN getCmdIndex := USINT_TO_INT(usi_Index); usi_Index := NR_OF_MAX_CONTROLLER_COMMANDS; END_IF END_FOR END_FUNCTION
Init command structure
Create a global function and generate code with an Actifsource template for all controllers globally.
- Selector 1: Controller.controllerInterface.getCommands@ControllerFunctionSpace
- Selector 2: Controller.controllerInterface:ControllerInterface
- Selector 3: ControllerInterface.getControllerCommandIndex@TemplateFunction
- Horizontal selector: Controller.controllerInterface.getCommands@ControllerFunctionSpace.count@BuiltIn
B&R libraries
With this UP version, new versions of B&R libraries (AEString & AEAct) come with.
Attachments:
Screenshot 2022-06-14 at 12.01.07.png (image/png)
command-state-list.png (image/png)
init-command-structure.png (image/png)
remanent-store-options.png (image/png)
init-options.png (image/png)