AS4 to AS6 conversion tool

Hello

I have made, as an unofficial sideproject, a tool that does automatic conversion of AS4 to AS6 projects:

AS4_to_AS6_ConversionTool

It is not perfect yet, and probably never will be, but in my own opinion, it does give one quite a good headstart in converting an AS4 project to AS6.

Documentation and userguide is in the repository. If anyone is intererested, you are welcome to test it out, and give feedback. And you are also welcome to contribute to the development of the tool.

Hi there,

I haven’t looked into it in detail but from the Readme alone it looks like it’s basically the same as the as6-migration-tools ?
If so, I suggest putting effort into that instead of another tool :slight_smile:

Michael W - Then you have not looked closely :slight_smile:

This tool does the actual conversion of the project. Completely (as much as currently possible).
As far as I know, the migration script does little more than an analysis, and replace the string and math
libraries, and some OPC UA updates,

This updated OPC UA structures, converts mappService components and rebuilts mapp hiereachies, replaces runtime and libraries with 6.x versions.
It also does not require the source project to be version 4.12. For simple projects, it works 100%, and allows you to
convert for instance an AS4.9 project to A6 in less than 2 minutes. An then it compiles and runs in AS6.

Of course there are things that are not handled, and which cannot easily be handled. Like conversion of Safety Release
to mappSafety, or complex rewriting of code because of deprecated libraries.

I know the other tool quite well. I believe this solution is superior. The migration script began
implementation back in the summer 2025, and I started this in december. A lot has happened
in to world of codegeneration in those 6 months.

I simply went with GitHub - BRDK-Internal/AS4_to_AS6_ConversionTool: AS4 to AS6 conversion tool. Replacement AS6 library pack can be downloaded here: https://abb-my.sharepoint.com/:u:/p/mads-ravn_pedersen_dk/IQD6GnOHao4pQYgsskb2J0ozAZQ3WCFLRfN-QG6DeJNaiME?e=Q6BnRd which looks identical to what the other tool does.

Maybe adding the full conversion as a helper script to the other tool would be an option, then? Combining the efforts, using the same codebase and GUI, etc… would be benefitical imo.

I agree that we should try and focus on only one path.

But just to give you (and others) an idea of what we have built, here is a demonstration
video:

conversionDemo2.mp4

This is a real customer project, although not one that is very complex. I convert it fully to
AS6 in the less than 6 minutes the video lasts, including compilation and download to the simulator.
The only thing missing, is setting the default mappView user, which is why the bindings of the HMI
are not working in the test.

So basically, less than 10 minutes total work, and this customer project is ready to commision on
AS6.

Hi @mads.andersen, I will try to connect developers of these two tools together and let’s discuss the possibilities we have. For others, stay tuned! :slight_smile:

Thanks @pedersenm for your effort, I have to convert a prj made with AS 4.11 + mapp legacy + ACP10…I’ll update you about the result.
———–
First I need to replace the obsolete hw, nothing new, I like the blocking red message.

Ciao
Valerio

I don´t think it can convert mapp legacy components, but give it a try and see how it gets you :slight_smile:

Thanks @pedersenm

I cannot access to AS6 Library Pack (SharePoint)

how to solve that?

thanks again

Marco Sartori

Oh yes, I am sorry about that. Guess there is not public access to my

company OneDrive.

Alternative download path for the AS6 Library Pack here:

I will try and come up with a better permanent solution, but this should work for now.

best regards

Mads

Hi @pedersenm ,
How do you handle the conversion between mapp Alarm and mapp AlarmX in your tool?

As you know mapp Alarm is not supported in AS6 so I think I should convert that to mapp AlarmX in AS 4 first. Am I wrong?
I asked few months ago if your tool handles mapp Legacy, but actually the conversion from mapp Legacy to new mapp actually it’s not complicated at all , steps are documented in the Help, so there is no need to modify your tool for handling old mapp Legacy.

Thanks
Ciao
Valerio

Hi @valerio.manenti

The short answer is, that I do no handle it - MappAlarm was basiscally “killed off” and
replaced by mappAlarmX many years ago, so to be honest I did not even consider the
usecase. But I also realize that the world of Automation Studio projects is a lot bigger
than what I experience in the little “bubble” that I work in :slight_smile:

So no, you are correct, the right approach would be to convert mappAlarm to mappAlarmX
in AS4. The converter will then handle the conversion to the new format for mappAlarmX,
and create alarm lists and link those the mapp component.

I will add mappAlarm support to the backlog of the tool, but it will likely not be the highest priority,
so just doing as you suggest is definitely the right way to go forward right now :slight_smile:

regards
Mads