Profinet Master Simulator / Read-Only Parameter Record

Hi,
were are implementing a profinet device based on a AnyBus CompactCom 40 module. We would like to map our alarm condition (Uint8) to the cyclic data and offer additional meta data, like the alarm borders and the current value as Float32 as acyclic read-only data. For this we use structured data like the following:

Structured data:

{ "ALARMSTATE",       ABP_UINT8,  1, APPL_WRITE_MAP_READ_ACCESS_DESC, 0, { { &mAlarmState, NULL } } }
{ "VALUE",            ABP_FLOAT,  1, APPL_NOT_MAP_READ_ACCESS_DESC,   0, { { &mValue, NULL } } }
{ "LOWER_MAIN_ALARM", ABP_FLOAT,  1, APPL_NOT_MAP_READ_ACCESS_DESC,   0, { { &mLowerMainAlarm, NULL } } }
{ "LOWER_PRE_ALARM",  ABP_FLOAT,  1, APPL_NOT_MAP_READ_ACCESS_DESC,   0, { { &mLowerPreAlarm, NULL } } }
{ "UPPER_PRE_ALARM",  ABP_FLOAT,  1, APPL_NOT_MAP_READ_ACCESS_DESC,   0, { { &mUpperPreAlarm, NULL } } }
{ "UPPER_MAIN_ALARM", ABP_FLOAT,  1, APPL_NOT_MAP_READ_ACCESS_DESC,   0, { { &mUpperMainAlarm, NULL } } }

Adi entry:
{ Instance, Name, DONT_CARE, static_cast(mAdiStructs.size()), APPL_WRITE_MAP_READ_ACCESS_DESC, { { NULL, NULL } } mAdiStructs.data() }`

Object map:
{ Instance, PD_WRITE, 1, 0 }

The corresponding gsd for the submodule look like this:

		<SubmoduleList>
			<SubmoduleItem ID="ID_SUBMOD_KPI_GROUP" SubmoduleIdentNumber="0x00000100" MayIssueProcessAlarm="false">
				<IOData>
					<Input Consistency="All items consistency">
						<DataItem DataType="Unsigned8" TextId="T_ID_KPI_ALARM_STATE" />
					</Input>
				</IOData>
				<RecordDataList>
					<ParameterRecordDataItem Index="1" Length="21" TransferSequence="0" >
						<Name TextId="T_ID_KPI_PARAMETER" />
						<Ref ValueItemTarget="VI_ID_ALARM_STATE_VALUES" DataType="Unsigned8" ByteOffset="0" DefaultValue="0" AllowedValues="0..4"
							TextId="T_ID_KPI_ALARM_STATE"/>
						<Ref DataType="Float32" ByteOffset="1" DefaultValue="0" TextId="T_ID_KPI_VALUE"/>
						<Ref DataType="Float32" ByteOffset="5" DefaultValue="0" TextId="T_ID_KPI_LOWER_MAIN_ALARM"/>
						<Ref DataType="Float32" ByteOffset="9" DefaultValue="0" TextId="T_ID_KPI_LOWER_PRE_ALARM"/>
						<Ref DataType="Float32" ByteOffset="13" DefaultValue="0" TextId="T_ID_KPI_UPPER_PRE_ALARM"/>
						<Ref DataType="Float32" ByteOffset="17" DefaultValue="0" TextId="T_ID_KPI_UPPER_MAIN_ALARM"/>
					</ParameterRecordDataItem>
				</RecordDataList>
				<ModuleInfo>
					<Name TextId="T_ID_MODULE_NAME_INPUT_KPI_GROUP" />
					<InfoText TextId="T_ID_SUBMOD_INFO_ELEMENT_GROUP" />
				</ModuleInfo>
			</SubmoduleItem>
		</SubmoduleList>

When connecting to the device the master simulator shows this error message:
grafik

It seems like the master simulator is trying to write to the parameter records during the start of the connections establishment. Adding a Changeable=“false” attribute to the ParameterRecords Refs does not help. Without the RecordDataList in the gsd, the connection can be established and cyclic and acyclic data can be exchanged.

How can I prevent the master simulator from trying to write to the acyclic read-only data of my ADI?

Thanks for your help and best regards

Andreas

Hello,

For questions like this I recommend opening a support case on support.hms-networks.com
This will allow the anybus embedded support team to be involved.

Deryck

Thanks Deryck. I opened a ticket.

Andreas