Store PLCnext CommunityPLCnext on LinkedInPLCnext on Instagram  PLCnext on YouTube Github PLCnext CommunityStore PLCnext Community

  1. m256
  2. PLCnext Engineer
  3. Monday, 31 May 2021
Hello,
i'm trying to investigate the cause of a watchdog:
Arp.Plc.Esm.Internal.WatchdogHandler ERROR - Watchdog of task 'T_200' triggered. (watchdog time 200000us / time after task start 399820us)


After a watchdog, looking in debug mode at the system variable ESM_DATA.EXCEPTIONS_INFO I can't find any kind of information (structure seem to be blank)

I found a library at C:\Program Files\PHOENIX CONTACT\PLCnext Engineer 2021.3\Libraries the library Exception Infos.pcwlx, that contains the function block GET_EXCEPTION_INFOS.

So, as suggested in the Help of PLCnext Engineer, I implemented an Exception Event Task and called inside this GET_EXCEPTION_INFOS.
(I've already used this kind Event Task, without any problem)

Unfortunately after the startup I have a FAIL and this is what I find in the Output.log file:



31.05.21 14:01:53.151 Arp.Plc.Gds.Internal.GdsMetaManager WARN - Compare type definitions: Incompatible offset, data type or alignment.
StartPoint: 'http://Arp.Plc.Esm/ESM_DATA.EXCEPTION_INFOS.TYPE_ID' (DataType: 'Enum:UInt32', Offset: '0', Alignment: '4') -> EndPoint: 'http://Arp.Plc.Eclr/ESM_DATA.EXCEPTION_INFOS.TYPE_ID' (DataType: 'Enum:UInt32', Offset: '0', Alignment: '0')
31.05.21 14:01:53.187 Arp.Plc.Domain.Internal.PlcManager ERROR - Exception occurs while setting up plc component 'Arp.Plc.Gds': Exception of type 'Arp::System::Commons::InvalidOperationException' was thrown
Could not create struct connector with single element connectors yet. Struct layouts should be binary equal.
Please check the struct type defintions of the following connector ports - StartPort: 'http://Arp.Plc.Esm/ESM_DATA' -> EndPort: 'http://Arp.Plc.Eclr/ESM_DATA'
at /usr/lib/libArp.Plc.Gds.so(+0x3c8d34) [0xaa45cd34]
at Arp::Plc::Gds::Internal::Connections::StructConnector::Create(Arp::BasicString<char, std::allocator<char> > const&, Arp::BasicString<char, std::allocator<char> > const&, Arp::Plc::Commons::Meta::DataInfo const&, Arp::Plc::Commons::Meta::DataInfo const&, Arp::Plc::Gds::Internal::GdsMetaManager&)
at Arp::Plc::Gds::Internal::Connections::StructConnector::Setup()
at Arp::Plc::Gds::Internal::Connections::ConnectorFactory::TryCreateStructConnector(Arp::Plc::Gds::Internal::Connections::StructConnectorSettings const&, std::shared_ptr<Arp::Plc::Gds::Internal::Connections::IConnector>&) const
at Arp::Plc::Gds::Internal::Connections::ConnectorFactory::CreateStructConnector(Arp::Plc::Gds::Internal::Connections::StructConnectorSettings const&) const
at Arp::Plc::Gds::Internal::Connections::GdsConnectionsBuilder::CreateStructConnectorPtr(Arp::Plc::Gds::Internal::Connections::StructConnectorSettings const&, Arp::Plc::Gds::Internal::Connections::ConnectorFactory const&, std::shared_ptr<Arp::Plc::Gds::Internal::Connections::IConnector>&)
at Arp::Plc::Gds::Internal::Connections::GdsConnectionsBuilder::CreateConnector(Arp::Plc::Gds::Internal::Connections::ConnectorInfo&, std::shared_ptr<Arp::Plc::Commons::Gds::IDataLayout>, std::shared_ptr<Arp::Plc::Commons::Gds::IDataLayout>, Arp::Plc::Gds::Internal::GdsContext&, std::shared_ptr<Arp::Plc::Gds::Internal::Connections::IConnector>&)
at Arp::Plc::Gds::Internal::Connections::GdsConnectionsBuilder::CreateDataConnection(std::shared_ptr<Arp::Plc::Commons::Gds::IGdsBuffer>, std::shared_ptr<Arp::Plc::Commons::Gds::IGdsBuffer>, Arp::Plc::Gds::Internal::Connections::ConnectionInfo&, Arp::Plc::Gds::Internal::GdsContext&, Arp::Plc::Gds::Internal::Connections::GdsConnections&)
at Arp::Plc::Gds::Internal::Connections::GdsConnectionsBuilder::CreateDataConnections(Arp::Plc::Gds::Internal::GdsContext&, Arp::Plc::Gds::Internal::Connections::GdsConnections&)
at Arp::Plc::Gds::Internal::GdsDomain::Setup()
at Arp::Plc::Gds::GdsComponent::SetupPlc(bool, Arp::Plc::Commons::Domain::PlcStartKind)
at Arp::Plc::Domain::Internal::PlcComponentInfo::SetupPlc(bool, Arp::Plc::Commons::Domain::PlcStartKind)
at Arp::Plc::Domain::Internal::PlcManager::LoadAndSetupPlcComponents(bool)
at Arp::Plc::Domain::Internal::PlcManager::LoadAndSetupPlcInternal()
at Arp::System::Commons::Threading::TaskQueue::ProcessTasksInternal(unsigned int)
at Arp::System::Commons::Threading::TaskQueue::ProcessTasks()
at Arp::System::Commons::Threading::TaskThread::RunInternal(void*)
at Arp::System::Commons::Threading::Thread::RunThread(Arp::System::Commons::Threading::ThreadBinaryCompatibilityExtensions*)
at Arp::System::Commons::Threading::Thread::RunInternal(void*)
at Arp::System::Ve::Internal::Linux::ThreadService::RunInternal(void*)
31.05.21 14:01:53.190 Arp.Plc.Domain.Internal.PlcManager ERROR - Plc component 'Arp.Plc.Gds' returns false while SetupPlc(isChanging=false, startKind=Warm) was called.
31.05.21 14:01:53.329 Arp.Io.EthernetIP.EthernetIPComponent INFO - ResetPlc, isChanging=false
31.05.21 14:01:53.330 Arp.Io.EthernetIP.EthernetIPComponent INFO - 2930754240 OnPlcUnloaded PlcLoaded=true
31.05.21 14:01:53.331 Arp.Io.EthernetIP.EthernetIPComponent INFO - 2930754240 ESDK 0xffff, RemoveAllAssemblies
31.05.21 14:01:53.333 Arp.Io.EthernetIP.EthernetIPComponent INFO - UnloadPlc, isChanging=false
31.05.21 14:01:53.333 Arp.Io.EthernetIP.EthernetIPComponent INFO - 2930754240 OnPlcUnloaded PlcLoaded=false
31.05.21 14:01:54.360 PLCnextBaseServices.PLCnextBase INFO - Reset configuration
31.05.21 14:01:54.361 PLCnextBaseServices.PLCnextBase INFO - Terminating
31.05.21 14:01:54.365 PLCnextBase.Internal.PLCnext.ShellInterfaceServer INFO - Terminate server
31.05.21 14:01:54.376 PLCnextBase.Internal.PLCnext.ShellInterfaceServer INFO - Terminated
31.05.21 14:01:54.715 CommonRemoting INFO - Remote client disconnects explicitly, connectionId = AFBE318B
31.05.21 14:01:54.718 CommonRemoting INFO - Remote client disconnects explicitly, connectionId = 8E977EAB
31.05.21 14:01:54.868 Arp.Plc.Domain.Internal.PlcManager ERROR - Reverted all yet loaded components.
31.05.21 14:01:54.870 Arp.Services.Ehmi.EhmiComponent INFO - 2646614720 EhmiComponent: OnPlcUnloaded, onError=true



This is my configuration:
- PLCnextEngineer 2021.3
- Target on PLCnextEngineer AXC F 2152 FW 2021.0
- Device AXC F 2152 running FW 2021.0.5


P.S.: Can you confirm that it's not possible to use a TON inside an Exception Event Task? It seems to be executed only once.


Thanks for your help!

Marcello
Frank PLCnext Team Accepted Answer Pending Moderation
0
Votes
Undo
Hi Marcello,

I've just tried the Get_Exceptio_Info FB with Engineer 2021.3 and FW 2021.0.5 without any issues, I'll forward the example to you by mail.
I can also confirm that the Exception Task will only executed once, so you can use a loop, but no TONs.

Take care,
Frank
Phoenix Contact Electronics Headquarter - PLCnext Runtime Product Management and Support
  1. more than a month ago
  2. PLCnext Engineer
  3. # 1
  • Page :
  • 1


There are no replies made for this post yet.
However, you are not allowed to reply to this post.