Hi All,
We are using B&R IPC controllers in our machines for more than 15 years. We have a big AS project now with almost more than 140 different configurations.
I am looking for a solution to ensure that only the changing tasks are loaded when different developers perform parallel program transfers to the same CPU.
Let’s say we have a total of 100 tasks in 8 cyclics. Occasionally, we as different developers can perform transfer of same AS project to the machine’s CPU in the production field. Even if the project is entirely the same, when another developer wants to transfer, AS wants to transfer all the tasks. We don’t want that. Is there a way to only load the tasks that a developer has made changes to, even if he hasn’t transferred the project before? Previously, we were able to do this by synchronizing the Temp and Binaries folders of the project on all computers, and it worked to some extent. Some make files in Temp folder broke the idea. Besides, after AR 4.33, the transfer logic has changed. I wonder if this is possible and if some people are working like this.
Welcome to the community !
For this purpose, the so-called ‘application modules’ were actually created some time ago as an additional abstraction layer:
https://help.br-automation.com/#/en/4/projectmanagement%2Fmodularapp%2Fappmoduleprojects.html
The method of how several developers can work with it in parallel is also documented:
https://help.br-automation.com/#/en/4/projectmanagement%2Fmodularapp%2Fappmoduleindiffprojects.html
https://help.br-automation.com/#/en/4/projectmanagement%2Fmodularapp%2Fappmoduleindiffprojects.html
I hope someone can share their experiences.
Thank you Chris for your reply.
Yes I know that Application Modules system. It is a great functionality and we have also used it in the past for dividing the machine to the sections like labeling, printing, heating etc.
Ok, It can solve my question at some point but actually not exactly. Even we consider of transferring full scope of all application modules, what I want is for AS to only detect differences from what other developers have already installed and transfer only those as if the same user were installing.
There may not be an official solution in AS, but may there be a workaround for this?
Hello @EnginY ,
Please check out Properties of objects in the Configuration View, scroll down to “Tab Transfer”, then “Transfer objects only if relevant changes have been made.”
It will perform more detailed comparision to ensure that even if the project is compiled by different user, the software would transfer only if the actual file content is changed.
I am looking forward to learning your feedback.
Image:
Hello @darjiv
I have checked that after your message. It has been already selected in our project. So it doesn’t work for this purpose or it is not working for us unfortunately.
If you mean by “synchronizing” to use SVN or GIT, that does not work for the binary files, since it changes the file-date by the checkout and there is no way to preserve it (at least was it on that way a couple years ago when I looked at it).
What works for me is to to archive the project by 7-Zip with the following options and restore it then from there on another computer:
7zG.exe a -t7z -mtc -mta -mmt=on "%SAVE_PATH%\%Year%-%MonthDay%-%DayMonth%%PRJ_NAME_EXT%\%PRJ_NAME%.7z" "..\%PRJ_NAME%"
Software like rsync might work as well with the right parameters, but I never tried it.
Thanks for reply. What we used in the past was using a file synchronizing software as you said at the end. As our project folder is now 26GB big, archiving and transferring the project is not a solution for us. I also don’t want to mess with existing logical files of other user while he continues developing another function.
We tried to copy Temp and Binary folder of a configuration to other user first and saw it worked. Then we have automatized the process through our local server according to change dates of files. It worked in the beginning but it stopped working after a point. When we checked the files manually, there were some .mak files which doesn’t have change time attribute. So synchronizing software confused with it. We have used Second Copy for this purpose, I don’t know if rsync or another alternative can manage this.
Should this be the solution or something else?
I think there must be someone other than us experiencing this situation and looking for a solution to it.
How is that possible, since the the change date/time attributes are given by the operating system / file system?
I can remember that there was a change in AS some versions ago which required me to add some more options ( “a -t7z -mtc -mta -mmt=on” instead of just “a -t7z”) to the 7-zip command to preserve all the file date/time information in the archive to prevent a recompile after extracting.
If you sync, then you should make sure that all the date/time informations in the files get syncted as well.
I use rsync to sync our SCADA data system between the production and the development PCs and there it works fine, but that does not require file timestamps. However, I know that there are a lot of options for it which might sync the required timstamps as well.
Due to inactivity, this topic will be marked as solved. If you have any further questions or updates, please let us know!