SafeCommissioningOption values persisted across changes to the PLC processor code change

I am looking at converting from the original legacy Safety to mapp Safety. One of the functions we previously used was to set the External Machine Options (BIT) utilizing the AsSafety library of functions. These External Machine Options were persisted on the SafetyPLC SafeKey. When code was downloaded to the X20SL8100 SafetyPLC processor - thru the use of the AsSafety library, the External Machine Options remained.

In moving to mapp Safety, it does not appear that the replacement SafeCommissioningOptions are persisted on the SafeKey any longer. Instead, the Safe Commissioning file in the Automation Studio project that is stored on the Compact flash (SYSTEM partition) of the X20CP3586 processor contains the last downloaded Safe Commissioning file.

When new code is built and a replacement Compact flash card is created an installed into the X20CP3596 processor, it appears that the Safe Ccommissioning Option values are lost.

I have been unable to understand how to obtain the previous SafeCommissiongOption values so that I can persist the values without needing to have someone re-enter them and then download these after a code change.

Is there a way to get these SafeCommissionOption values persisted like they were previously under the AsSafety (legacy) Safety functionality?

Using Automation Studio V4.12.8.41 and mapp Safety V5.24.2. Processors are X20CP3586 and X20SL8100.

Hello Christopher,

I believe that the safety application and the safe commissioning files are transferred to the SafeKey of the SafeLogic. I’m referring to an X20SL SafeLogic. It’s different with an X20SLX SafeLogic.

Selection and transfer

Regards

Stephan

Stephan:

While the SafeCommissioning file is transferred to the SafetyPLC processor and persisted on the SafeKey of the processor, there is no way that I have found to be able retrieve the SafeCommissioning file/settings once transferred.

The original AsSafety (legacy) provided a way to transmit to the SafetyPLC SafeKey the External Machine Options as well as read the current values back. Our application provides several External Machine Options that can each be enabled or disabled. A single SafeCommissioning file would not provide the same functionality and having a separate SafeCommissioning file for every combination would be unmanageable because we would need a set of files for every combination of the 30+ SafeOptions and a way to identify each file and the configuration of the SafeCommissioning values.

The real issue comes when a set of SafeCommissioning values have been already transferred to the SafetyPLC/SafeKey and then the SafeCommissioning file is rebuilt by building a new release of the PLC code, the original SafeCommissioning file is present on the SYSTEM partition that will not match what is already transferred to the SafetyPLC/SafeKey.

I need a way to be able to show what the current SafeCommissioning options are enabled as well as be able to allow changes to any of the values and retransfer them.

My only thought is that a back-up copy of the modified SafeCommissioning file must be maintained separate from the SYSTEM partition. When a SafeCommissioning file is modified and transferred to the SafePLC/SafeKey, I will make a back-up on a USB Flash drive that I have available. Then when accessing out user interface to see or modify the Safe Options, I will copy the back-up SafeCommissioning file from the USB Flash drive to the SYSTEM partition. That way the values that were last transferred can be obtained and displayed.

Currently I see no way to get back the SafeCommissioning file that was last transferred if the Compact Flash was replaced with newer PLC code - and ultimately an older SafeCommissioning file.

Christopher:

please take a look at the SfDomain library. With the function blocks available there, you can read and write the SafeCommissioning options from within your application.

Regards,

Stephan

1 Like

Stephan - thanks for your support on this.

I have looked at the available function blocks and unless I am missing something, there is no way to read the SafeOptions from the SafetyPLC/SafeKey. There is only a way to read the SafeOptions from the SafeCommissioning file located on the Compact flash of the PLC using the SfDomainLoadSafeOptions and SfDomainGetSafeOptionBool function blocks.

The issue I have is that we have a monthly release of PLC code. The process would be to create the Comactflash card for the current PLC code project and install into the PLC. But this reverts the current SafeCommissioning file back to the original that is part of the Automation Studio project which may or may not be the same as what was modified and deployed in the previous update of the SafetyPLC and SafeOptions.

In the AsSafety (legacy) library, you could read back the current SafeOptions from the SafetyPLC/SafeKey using the safeConfigurtionOnTarget_V2 function block to read the External Machine Options. There appears to be no SfDomain function block that perform the same function. It is assumed that there is a SafeCommissioning file for every combination of SafeOptions when using the mapp Safety. This is very difficult to provide as we would need 20-30 different SafeCommissioning files for the combination of SafeOptions currently in use, and then it would be difficult to name them such that someone can understand what SafeOptions are enabled.

If there is a SfDomain function block that can obtain the last set of SafeOptions transferred to the SafetyPLC/SafeKey without using the SafeCommissioning file on the Compact flash, that is what I am looking for. But I do not see this ability which is a reduction of functionality that was previously part of the AsSafety (legacy) library.

Hallo Christopher,

that’s more of a specialized application. I suggest you contact your local B&R support. They can work with you to find a solution.

Regards,
Stephan

Hello,

I do also not know a function to read back the SafeCommissioning Options. Active on the SafePLC.

You can read the CRC of the current active File on SafePLC via the Info Function.
So you can compare if your backup File is the one matching the one on the SafePLC.

I think the way to go with the Backup of the file is the right way.

Greetings
Michael