Jump to content
Форум по продукции MOXA

Recommended Posts

Добрый день! Помогите решить проблему.

 

На скада системе WinCC периодически кратковременно теряется связь с Active ОРС-сервером (на пол секунды, каждые 30 секунд).

Что будет очень раздражать операторов.

Опытным путем выяснено, если настроить контроллер W5340 посылать наверх данные чаще чем раз в 30 секунд, то на скаде всё становится нормально.

Нам необходима настройка периодичности - 1 час.

 

Подозрение на сам ОРСсервер судя по логам СКАДы. ЛОГ скады

 

14:06:07,757 00001768 WARNING Connection "MOXA_ACTIVE_OPC_SERVER" disconnected (00000001)

14:06:07,773 00001768 INFO > FOPCData::TerminateOPC ( Cleanup)

14:06:07,773 00001768 SUCCESS ..FOPCData::TerminateOPC m_dpOPCItemMgt->RemoveItems(9, 0195cdf8, 03c5fe44)- ok

14:06:07,773 00001768 INFO > COPCGroup::~COPCGroup 0195c770

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpItemMgt->RemoveItems(5, 019638b0, 03c5fda0)- ok

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpItemMgt->Release, Ref=3

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpGroupMgt->Release, Ref=2

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpGroup->Release, Ref=1

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup RemoveGroup(m_hServerGroup)

14:06:07,773 00001768 INFO < COPCGroup::~COPCGroup 0195c770

14:06:07,773 00001768 INFO > COPCGroup::~COPCGroup 0195cae8

14:06:07,773 0000163c INFO - IOPCChnDataCallback::Release 01925438. Count = 3...

14:06:07,773 0000163c INFO - IOPCChnDataCallback::Release 01925438. Count = 2...

14:06:07,773 0000163c INFO - IOPCChnDataCallback::Release 01925438. Count = 1...

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpItemMgt->RemoveItems(2, 01962f98, 03c5fda0)- ok

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpItemMgt->Release, Ref=3

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpGroupMgt->Release, Ref=2

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup m_dpGroup->Release, Ref=1

14:06:07,773 00001768 INFO ..COPCGroup::~COPCGroup RemoveGroup(m_hServerGroup)

14:06:07,773 00001768 INFO < COPCGroup::~COPCGroup 0195cae8

14:06:07,773 00001768 INFO ..FOPCData: TerminateOPC() releasing interfaces...

14:06:07,773 00001690 INFO - IOPCChnShutdown::Release 019287e0. Count = 2...

14:06:07,773 00001690 INFO - IOPCChnShutdown::Release 019287e0. Count = 1...

14:06:07,773 00001690 INFO - IOPCChnShutdown::Release 019287e0. Count = 0...

14:06:07,773 00001690 INFO - IOPCChnShutdown::Release 019287e0: Deleting IOPCChnShutdown!

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpConnectionPoint released, Ref=0

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpContainer released, Ref=4

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpCommon released, Ref=3

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpSyncIO released, Ref=1

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpOPCItemMgt released, Ref=0

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpOPCServerDisp released, Ref=00000002

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpBrowse30 released, Ref=1

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC m_dpOPCUnk released, Ref=00000000

14:06:07,773 00001768 INFO ..FOPCData::TerminateOPC CoUninitialize

14:06:07,773 00001768 INFO < FOPCData::TerminateOPC

14:06:07,773 00001768 INFO - COPCConnection::SetNotEstablished 01924910 Connection "MOXA_ACTIVE_OPC_SERVER" disconnected (00000001)

14:06:07,773 00001768 INFO > FOPCData::InitOPC "MOXA_ACTIVE_OPC_SERVER" (Machine="<LOCAL>", OPC-Server="MOXA_ACTIVE_OPC_SERVER")

14:06:07,773 00001768 SUCCESS ..FOPCData::InitOPC 01926248 CoInitializeEx - ok

14:06:07,773 00001768 INFO > FOPCData::GetServerClassID

14:06:07,773 00001768 INFO < FOPCData::GetServerClassID ("MOXA_ACTIVE_OPC_SERVER") S_OK -- CLSID is still valid

14:06:07,773 00001768 SUCCESS - FOPCData::InitOPC - ClassID set (hr=0x00000000)

14:06:07,773 00001768 INFO - FOPCData::InitOPC calling CoCreateInstance(Ex)..

14:06:07,789 00001768 SUCCESS ..FOPCData::InitOPC CoCreateInstanceEx- ok

14:06:07,789 00001768 INFO ..FOPCData::InitOPC QueryInterface(IID_IOPCServer)- ok

14:06:07,789 00001768 INFO ..FOPCData::InitOPC [MOXA_ACTIVE_OPC_SERVER] m_dpOPCServerDisp->GetStatus 1- ok

14:06:07,789 00001768 INFO | OPC Server: "MOXA_ACTIVE_OPC_SERVER" on <LOCAL>

14:06:07,789 00001768 INFO | Class-Id: {6CBF6AB8-1BA8-4A2B-8B92-554D29D378F9}

14:06:07,789 00001768 INFO | Vendor-Info: Moxa Inc.

14:06:07,789 00001768 INFO | Version: 0.0 (Build 0)

14:06:07,789 00001768 INFO | Start Time: 2011-07-21 8:38:52,656 UTC

14:06:07,789 00001768 INFO | Current Time: 2011-07-21 10:06:07,789 UTC

14:06:07,789 00001768 INFO | Last Update: 2011-07-21 10:06:07,773 UTC

14:06:07,789 00001768 INFO | Group Count: 0

14:06:07,789 00001768 INFO | Bandwidth: 0

14:06:07,789 00001768 INFO | Server State: RUNNING

14:06:07,789 00001768 INFO + Reading Channel-specific settings

14:06:07,789 00001768 INFO ..FOPCData::InitOPC m_dpOPCServerDisp->AddGroup("MOXA_ACTIVE_OPC_SERVER", LCID=0419)- ok

14:06:07,789 00001768 INFO | 0: Comm-Slot-03 ("Stend MOXA Orenburg.Comm-Slot-03", "", 11, ffffff5d, ACTIVE)

14:06:07,789 00001768 INFO | 1: SystemRSSI ("Stend MOXA Orenburg.System-00", "", 19, ffffff5c, ACTIVE)

14:06:07,789 00001768 INFO | 2: AI-00 ("Stend MOXA Orenburg.AI-00", "", 5, ffffff5b, ACTIVE)

14:06:07,789 00001768 INFO | 3: SysConnect-00 ("Stend MOXA Orenburg.SysConnect-00", "", 11, ffffff5a, ACTIVE)

14:06:07,789 00001768 INFO | 4: DI-00 ("Stend MOXA Orenburg.DI-00", "", 11, ffffff59, ACTIVE)

14:06:07,789 00001768 INFO | 5: Comm-Slot-01 ("Stend MOXA Orenburg.Comm-Slot-01", "", 11, ffffff58, ACTIVE)

14:06:07,789 00001768 INFO | 6: V-Ch-00 ("Stend MOXA Orenburg.V-Ch-00", "", 5, ffffff57, ACTIVE)

14:06:07,789 00001768 INFO | 7: addAI-00 ("Stend MOXA Orenburg.S01-Stend MOXA Orenburg IO addon.AI-00", "", 5, ffffff56, ACTIVE)

14:06:07,789 00001768 INFO | 8: Comm-Slot-02 ("Stend MOXA Orenburg.Comm-Slot-02", "", 11, ffffff55, ACTIVE)

14:06:07,789 00001768 SUCCESS ..FOPCData::InitOPC m_dpOPCItemMgt->AddItems(9, 019645e0, 03c5fa1c, 03c5fa20)- ok

14:06:07,789 00001768 INFO - FOPCData::InitOPC Server provides IConnectionPointContainer (001f2094).. using DA V3.0 interfaces

14:06:07,789 00001768 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001768 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001768 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001768 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001768 INFO - IOPCChnShutdown::AddRef 019287e0 Count = 1...

14:06:07,789 00001768 INFO - IOPCChnShutdown::AddRef 019287e0 Count = 2...

14:06:07,789 00001768 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001768 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001768 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001768 INFO - IOPCChnShutdown::Release 019287e0. Count = 1...

14:06:07,789 00001664 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001664 INFO - IOPCChnShutdown::AddRef 019287e0 Count = 2...

14:06:07,789 00001664 INFO - IOPCChnShutdown:: QueryInterface called...

14:06:07,789 00001664 INFO - IOPCChnShutdown::AddRef 019287e0 Count = 3...

14:06:07,789 00001768 INFO ..FOPCData::InitOPC m_dpOPCUnk->QueryInterface( IID_IOPCCommon, (LPVOID *)&m_dpCommon)- ok

14:06:07,789 00001768 INFO ..FOPCData::InitOPC m_dpOPCItemMgt->QueryInterface(IID_IOPCSyncIO)- ok

14:06:07,789 00001768 INFO < FOPCData::InitOPC - ok

14:06:07,789 00001768 WATCHDOG - OPCWatchDog::AddWatch 0x01924f88 for ThreadID=00001768 calling IOPCServer::GetStatus (Counter=0, Warn: 5000 ms, Break: 10000 ms)

14:06:07,789 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 checking...

14:06:07,789 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to 5000 ms

14:06:07,789 00001768 WATCHDOG - OPCWatchDog::RemoveWatch 0x01924f88 for ThreadID=00001768 after 0 ms - OK

14:06:07,789 00001768 INFO - FOPCData::IsNotSuspended [MOXA_ACTIVE_OPC_SERVER] Server Status is RUNNING

14:06:07,789 00001768 INFO - COPCConnection::SetEstablished 01924910 Connection "MOXA_ACTIVE_OPC_SERVER"

14:06:07,789 00001768 SUCCESS Connection "MOXA_ACTIVE_OPC_SERVER" OK

14:06:08,242 00001784 VAR_RD > ChannelUnit::StartRead("MOXA_ACTIVE_OPC_SERVER", 019645e0, TAID:37, 5 Tags, Cycle=500)

14:06:08,242 00001784 VAR_RD | AI-00

14:06:08,242 00001784 VAR_RD | DI-00

14:06:08,242 00001784 VAR_RD | addAI-00

14:06:08,242 00001784 VAR_RD | SystemRSSI

14:06:08,242 00001784 VAR_RD | SysConnect-00

14:06:08,242 00001784 INFO < ChannelUnit::StartRead - TRUE

14:06:08,242 00001768 INFO > COPCGroup::COPCGroup 0195cae8 "_Cycle:500"

14:06:08,242 00001768 WATCHDOG - OPCWatchDog::AddWatch 0x01924f88 for ThreadID=00001768 calling IOPCServer::AddGroup (Counter=0, Warn: 5000 ms, Break: 10000 ms)

14:06:08,242 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 checking...

14:06:08,242 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to 5000 ms

14:06:08,242 00001768 WATCHDOG - OPCWatchDog::RemoveWatch 0x01924f88 for ThreadID=00001768 after 0 ms - OK

14:06:08,257 00001768 INFO ..COPCGroup::COPCGroup m_pOPCFunct->m_dpOPCServerDisp->AddGroup("_Cycle:500")- ok

14:06:08,257 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 00001768 INFO - IOPCChnDataCallback::AddRef 01925438 Count = 2...

14:06:08,257 00001768 INFO - IOPCChnDataCallback::AddRef 01925438 Count = 3...

14:06:08,257 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 00001768 INFO - IOPCChnDataCallback::Release 01925438. Count = 2...

14:06:08,257 0000163c INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 0000163c INFO - IOPCChnDataCallback::AddRef 01925438 Count = 3...

14:06:08,257 0000163c INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,257 0000163c INFO - IOPCChnDataCallback::AddRef 01925438 Count = 4...

14:06:08,257 00001768 INFO - m_dpConnectionPoint->Advise((IUnknown*)m_pOPC->m_CallBack, &m_dwCookie(00000001))- ok

14:06:08,257 00001768 INFO - COPCGroup::COPCGroup - SetKeepAlive(10000)-> Revised keep alive time: 10000

14:06:08,257 00001768 INFO < COPCGroup::COPCGroup 0195cae8

14:06:08,257 00001768 INFO > COPCGroup::AddItems(0195b3bc, 5) for OPC-Group "_Cycle:500"

14:06:08,257 00001768 INFO | 0: AI-00 ("Stend MOXA Orenburg.AI-00", "", 5, 0191c888)

14:06:08,257 00001768 INFO | 1: DI-00 ("Stend MOXA Orenburg.DI-00", "", 11, 0191d5a8)

14:06:08,257 00001768 INFO | 2: addAI-00 ("Stend MOXA Orenburg.S01-Stend MOXA Orenburg IO addon.AI-00", "", 5, 0191da20)

14:06:08,257 00001768 INFO | 3: SystemRSSI ("Stend MOXA Orenburg.System-00", "", 19, 0191dcb0)

14:06:08,257 00001768 INFO | 4: SysConnect-00 ("Stend MOXA Orenburg.SysConnect-00", "", 11, 0191d128)

14:06:08,257 00001768 WATCHDOG - OPCWatchDog::AddWatch 0x01924f88 for ThreadID=00001768 calling IOPCItemMgt::AddItems (Counter=0, Warn: 5000 ms, Break: 10000 ms)

14:06:08,257 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 checking...

14:06:08,257 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to 5000 ms

14:06:08,257 00001768 WATCHDOG - OPCWatchDog::RemoveWatch 0x01924f88 for ThreadID=00001768 after 0 ms - OK

14:06:08,257 00001768 SUCCESS ..COPCGroup::AddItems [MOXA_ACTIVE_OPC_SERVER] m_dpOPCItemMgt->AddItems(5, 019633c0, 03c5fd90, 03c5fd94)- ok

14:06:08,257 00001768 INFO ..COPCGroup::AddItems m_dpGroupMgt->SetState(500, 500, TRUE,0,0,0,0) - ok

14:06:08,257 00001768 INFO < COPCGroup::AddItems return 00000000

14:06:08,335 00001690 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,335 00001690 INFO > IOPCDataCallback::OnDataChange... XId=0, ItemCount=5

14:06:08,335 00001690 INFO | AI-00 received:

0000 05 00 92 01 D8 F2 88 01 00 00 00 00 1D C1 FC 3F ...............?

14:06:08,335 00001690 INFO | DI-00 received:

0000 0B 00 92 01 D8 F2 88 01 00 00 83 02 A8 D5 91 01 ................

14:06:08,335 00001690 INFO | addAI-00 received:

0000 05 00 92 01 D8 F2 88 01 00 00 00 00 01 F0 45 40 ..............E@

14:06:08,335 00001690 INFO | SystemRSSI received:

0000 13 00 92 01 D8 F2 88 01 17 00 00 00 B0 DC 91 01 ................

14:06:08,335 00001690 INFO | SysConnect-00 received:

0000 0B 00 92 01 D8 F2 88 01 01 00 83 02 28 D1 91 01 ............(...

14:06:08,335 00001690 INFO - IOPCChnDataCallback::OnDataChange appended CBStruct 01960ec8 with ppVariable=01963930, ppAccessResult=019638b0, pTQ=019601e8, dwReturnCount=5 to DataList 01924b3a (now 1 objects)

14:06:08,335 00001690 INFO < IOPCDataCallback::OnDataChange

14:06:08,335 00001778 INFO - COPCConnection::ProcessData retrieved CBStruct 01960ec8 with ppVariable=01963930, ppAccessResult=019638b0, pTQ=019601e8, dwReturnCount=5 from DataList 01924b3a (0 objects)

14:06:08,335 00001778 VAR_RD - ChannelUnit::FinishDMReadRequestEx(01963930, 019638b0, 5)

14:06:08,335 00001778 VAR_RD | AI-00 : Status=0000 Quality=00c0 | 00 00 00 00 1d c1 fc 3f

14:06:08,335 00001778 VAR_RD | DI-00 : Status=0000 Quality=00c0 | 00

14:06:08,335 00001778 VAR_RD | addAI-00 : Status=0000 Quality=00c0 | 00 00 00 00 01 f0 45 40

14:06:08,335 00001778 VAR_RD | SystemRSSI : Status=0000 Quality=00c0 | 17 00 00 00

14:06:08,335 00001778 VAR_RD | SysConnect-00: Status=0000 Quality=00c0 | 01

14:06:08,742 00001784 VAR_RD > ChannelUnit::StartRead("MOXA_ACTIVE_OPC_SERVER", 019645e0, TAID:38, 2 Tags, Cycle=1000)

14:06:08,742 00001784 VAR_RD | AI-00

14:06:08,742 00001784 VAR_RD | addAI-00

14:06:08,742 00001784 INFO < ChannelUnit::StartRead - TRUE

14:06:08,757 00001768 INFO > COPCGroup::COPCGroup 0195c770 "_Cycle:1000"

14:06:08,757 00001768 WATCHDOG - OPCWatchDog::AddWatch 0x01924f88 for ThreadID=00001768 calling IOPCServer::AddGroup (Counter=0, Warn: 5000 ms, Break: 10000 ms)

14:06:08,773 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 checking...

14:06:08,773 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to 5000 ms

14:06:08,789 00001768 WATCHDOG - OPCWatchDog::RemoveWatch 0x01924f88 for ThreadID=00001768 after 31 ms - OK

14:06:08,789 00001768 INFO ..COPCGroup::COPCGroup m_pOPCFunct->m_dpOPCServerDisp->AddGroup("_Cycle:1000")- ok

14:06:08,789 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,789 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,789 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,789 00001768 INFO - IOPCChnDataCallback:: QueryInterface called...

14:06:08,789 00001768 INFO - IOPCChnDataCallback::AddRef 01925438 Count = 5...

14:06:08,789 00001768 INFO - IOPCChnDataCallback::Release 01925438. Count = 4...

14:06:08,789 00001768 INFO - m_dpConnectionPoint->Advise((IUnknown*)m_pOPC->m_CallBack, &m_dwCookie(00000001))- ok

14:06:08,789 00001768 INFO - COPCGroup::COPCGroup - SetKeepAlive(10000)-> Revised keep alive time: 10000

14:06:08,789 00001768 INFO < COPCGroup::COPCGroup 0195c770

14:06:08,789 00001768 INFO > COPCGroup::AddItems(0191d284, 2) for OPC-Group "_Cycle:1000"

14:06:08,789 00001768 INFO | 0: AI-00 ("Stend MOXA Orenburg.AI-00", "", 5, 0191c888)

14:06:08,789 00001768 INFO | 1: addAI-00 ("Stend MOXA Orenburg.S01-Stend MOXA Orenburg IO addon.AI-00", "", 5, 0191da20)

14:06:08,789 00001768 WATCHDOG - OPCWatchDog::AddWatch 0x01924f88 for ThreadID=00001768 calling IOPCItemMgt::AddItems (Counter=0, Warn: 5000 ms, Break: 10000 ms)

14:06:08,789 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 checking...

14:06:08,789 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to 5000 ms

14:06:08,789 00001768 WATCHDOG - OPCWatchDog::RemoveWatch 0x01924f88 for ThreadID=00001768 after 0 ms - OK

14:06:08,789 00001768 SUCCESS ..COPCGroup::AddItems [MOXA_ACTIVE_OPC_SERVER] m_dpOPCItemMgt->AddItems(2, 019601e8, 03c5fd90, 03c5fd94)- ok

14:06:08,789 00001768 INFO ..COPCGroup::AddItems m_dpGroupMgt->SetState(1000, 1000, TRUE,0,0,0,0) - ok

14:06:08,789 00001768 INFO < COPCGroup::AddItems return 00000000

14:06:08,836 00001664 INFO > IOPCDataCallback::OnDataChange... XId=0, ItemCount=2

14:06:08,836 00001664 INFO | AI-00 received:

0000 05 00 92 01 D8 F2 0C 01 00 00 00 00 1D C1 FC 3F ...............?

14:06:08,836 00001664 INFO | addAI-00 received:

0000 05 00 92 01 D8 F2 0C 01 00 00 00 00 01 F0 45 40 ..............E@

14:06:08,836 00001664 INFO - IOPCChnDataCallback::OnDataChange appended CBStruct 019610c8 with ppVariable=019639d0, ppAccessResult=01963298, pTQ=01963930, dwReturnCount=2 to DataList 01924b3a (now 1 objects)

14:06:08,836 00001664 INFO < IOPCDataCallback::OnDataChange

14:06:08,836 00001778 INFO - COPCConnection::ProcessData retrieved CBStruct 019610c8 with ppVariable=019639d0, ppAccessResult=01963298, pTQ=01963930, dwReturnCount=2 from DataList 01924b3a (0 objects)

14:06:08,836 00001778 VAR_RD - ChannelUnit::FinishDMReadRequestEx(019639d0, 01963298, 2)

14:06:08,836 00001778 VAR_RD | AI-00 : Status=0000 Quality=00c0 | 00 00 00 00 1d c1 fc 3f

14:06:08,836 00001778 VAR_RD | addAI-00: Status=0000 Quality=00c0 | 00 00 00 00 01 f0 45 40

14:06:09,836 00001690 INFO > IOPCDataCallback::OnDataChange... XId=0, ItemCount=1

14:06:09,836 00001690 INFO | AI-00 received:

0000 05 00 92 01 D8 F2 88 01 00 00 00 00 1D C2 FC 3F ...............?

14:06:09,836 00001690 INFO - IOPCChnDataCallback::OnDataChange appended CBStruct 01963930 with ppVariable=01963298, ppAccessResult=0195c998, pTQ=01963800, dwReturnCount=1 to DataList 01924b3a (now 1 objects)

14:06:09,836 00001690 INFO < IOPCDataCallback::OnDataChange

14:06:09,836 00001778 INFO - COPCConnection::ProcessData retrieved CBStruct 01963930 with ppVariable=01963298, ppAccessResult=0195c998, pTQ=01963800, dwReturnCount=1 from DataList 01924b3a (0 objects)

14:06:09,836 00001778 VAR_RD - ChannelUnit::FinishDMReadRequestEx(01963298, 0195c998, 1)

14:06:09,836 00001778 VAR_RD | AI-00: Status=0000 Quality=00c0 | 00 00 00 00 1d c2 fc 3f

14:06:09,836 00001664 INFO > IOPCDataCallback::OnDataChange... XId=0, ItemCount=1

14:06:09,836 00001664 INFO | AI-00 received:

0000 05 00 92 01 D8 F2 0C 01 00 00 00 00 1D C2 FC 3F ...............?

14:06:09,836 00001664 INFO - IOPCChnDataCallback::OnDataChange appended CBStruct 019638b0 with ppVariable=019639d0, ppAccessResult=01963130, pTQ=01962850, dwReturnCount=1 to DataList 01924b3a (now 1 objects)

14:06:09,836 00001664 INFO < IOPCDataCallback::OnDataChange

14:06:09,836 00001778 INFO - COPCConnection::ProcessData retrieved CBStruct 019638b0 with ppVariable=019639d0, ppAccessResult=01963130, pTQ=01962850, dwReturnCount=1 from DataList 01924b3a (0 objects)

14:06:09,836 00001778 VAR_RD - ChannelUnit::FinishDMReadRequestEx(019639d0, 01963130, 1)

14:06:09,836 00001778 VAR_RD | AI-00: Status=0000 Quality=00c0 | 00 00 00 00 1d c2 fc 3f

14:06:13,790 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 WFSO-Timeout...

14:06:13,790 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to -1 ms

14:06:28,792 00001768 ERROR - COPCConnection::ProcessRequest: keep-alive timeout state=1 (last CB: 5287656 | now: 5306609 | dt=18953 | rev. keep alive * 1.5: 15000)

14:06:28,792 00001768 WARNING - COPCConnection::ProcessRequest -> OPC_CONN_CHECK

14:06:28,792 00001768 WATCHDOG - OPCWatchDog::AddWatch 0x01924f88 for ThreadID=00001768 calling FOPCData::GetStatus: IOPCServer::GetStatus (Counter=0, Warn: 5000 ms, Break: 10000 ms)

14:06:28,792 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 checking...

14:06:28,792 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to 5000 ms

14:06:28,792 00001768 WATCHDOG - OPCWatchDog::RemoveWatch 0x01924f88 for ThreadID=00001768 after 0 ms - OK

14:06:28,792 00001768 INFO FOPCData::GetStatus- ok

14:06:28,792 00001768 INFO | Current Time: 2011-07-21 10:06:28,792

14:06:28,792 00001768 INFO | Last Update: 2011-07-21 10:06:07,773

14:06:28,792 00001768 INFO | Group Count: 0

14:06:33,793 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 WFSO-Timeout...

14:06:33,793 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to -1 ms

14:06:44,843 00001690 INFO > IOPCDataCallback::OnDataChange... XId=0, ItemCount=1

14:06:44,843 00001690 INFO | AI-00 received:

0000 05 00 92 01 D8 F2 88 01 00 00 00 00 1D C2 FC 3F ...............?

14:06:44,843 00001690 INFO - IOPCChnDataCallback::OnDataChange appended CBStruct 019638b0 with ppVariable=0195d820, ppAccessResult=01963298, pTQ=01963140, dwReturnCount=1 to DataList 01924b3a (now 1 objects)

14:06:44,843 00001690 INFO < IOPCDataCallback::OnDataChange

14:06:44,843 00001778 INFO - COPCConnection::ProcessData retrieved CBStruct 019638b0 with ppVariable=0195d820, ppAccessResult=01963298, pTQ=01963140, dwReturnCount=1 from DataList 01924b3a (0 objects)

14:06:44,843 00001664 INFO > IOPCDataCallback::OnDataChange... XId=0, ItemCount=1

14:06:44,843 00001778 VAR_RD - ChannelUnit::FinishDMReadRequestEx(0195d820, 01963298, 1)

14:06:44,843 00001778 VAR_RD | AI-00: Status=0000 Quality=00c0 | 00 00 00 00 1d c2 fc 3f

14:06:44,843 00001664 INFO | AI-00 received:

0000 05 00 92 01 D8 F2 0C 01 00 00 00 00 1D C2 FC 3F ...............?

14:06:44,843 00001664 INFO - IOPCChnDataCallback::OnDataChange appended CBStruct 01963930 with ppVariable=019639b0, ppAccessResult=019639d0, pTQ=019637e8, dwReturnCount=1 to DataList 01924b3a (now 1 objects)

14:06:44,843 00001664 INFO < IOPCDataCallback::OnDataChange

14:06:44,843 00001778 INFO - COPCConnection::ProcessData retrieved CBStruct 01963930 with ppVariable=019639b0, ppAccessResult=019639d0, pTQ=019637e8, dwReturnCount=1 from DataList 01924b3a (0 objects)

14:06:44,843 00001778 VAR_RD - ChannelUnit::FinishDMReadRequestEx(019639b0, 019639d0, 1)

14:06:44,843 00001778 VAR_RD | AI-00: Status=0000 Quality=00c0 | 00 00 00 00 1d c2 fc 3f

14:07:18,814 00001768 ERROR - COPCConnection::ProcessRequest: keep-alive timeout state=2 (last CB: 5322656 | now: 5356609 | dt=33953 | rev. keep alive * 1.5: 30000)

14:07:18,814 00001768 WATCHDOG - OPCWatchDog::AddWatch 0x01924f88 for ThreadID=00001768 calling FOPCData::GetStatus: IOPCServer::GetStatus (Counter=0, Warn: 5000 ms, Break: 10000 ms)

14:07:18,814 00001764 WATCHDOG - OPCWatchDog::Watch 0x01924f88 for ThreadID=00001768 checking...

14:07:18,814 00001764 WATCHDOG - OPCWatchDog 01911f00: Setting Semaphore timeout to 5000 ms

14:07:18,814 00001768 WATCHDOG - OPCWatchDog::RemoveWatch 0x01924f88 for ThreadID=00001768 after 0 ms - OK

14:07:18,814 00001768 INFO FOPCData::GetStatus- ok

14:07:18,814 00001768 INFO - COPCConnection::SetNotEstablished 01924910 Connection "MOXA_ACTIVE_OPC_SERVER" disconnected (00000001)

 

В строках 215 и 243 ошибка тайм-аута связи СКАДы и ОРС (COPCConnection::ProcessRequest: keep-alive timeout state).

Что вынуждает Скаду разорвать связь с ОРС-сервером и создать заново.

 

В скаде заложен стандартный ОРС механзм keep-alive для проверки связи с ОРС-сервером

 

The OPC DA specification 3.0 is provided with the "Keep-Alive" feature. If the OPC DA server supports the OPC DA specification 3.0, the feature is used. The feature causes the OPC DA server to automatically trigger cyclic updating (call OnDataChange) even if the tag values have not changed. If this regular updating is disabled, the WinCC OPC DA client terminates the connection.

 

 

 

По логам видно, что ОРС-сервер пару раз вызвав обновление данных триггером "call OnDataChange" успокаивается, и больше не отправляет данных клиенту (скаде). Что противоречит стандарту OPC DA specification 3.0. Через время таймаута 30 секунд скада отключается.

 

Что нужно сделать, чтобы связь СКАДА-ОРС не терялась?

 

 

ЗЫ. СКАДА и ОРСсервер на одном компьютере Win XP SP3 Rus.

Link to comment

Добрый день!

 

Честно говоря, мы с WinCC не работали. Но попробуем разобраться.

 

Проверьте, чтобы у Вас стояла последняя версия Active OPC 1.12.

 

Я хотел бы вот что уточнить:

На скада системе WinCC периодически кратковременно теряется связь с Active ОРС-сервером (на пол секунды, каждые 30 секунд).

если настроить контроллер W5340 посылать наверх данные чаще чем раз в 30 секунд, то на скаде всё становится нормально.

В этих фразах затронуты вобщем-то независимые типы связи. Одна связь W5340

Вы уверены, что дело только в этом?

 

Кстати, про "посылку данных раз в 30 секунд" Вы имеете ввиду настройку ioLogik, выделенную синим цветом?

А если там оставить 1 час, а Heartbeat interval поставить 30 секунд (см. выделение красным), то как будет вести себя система?

2011-07-24_1143.png

 

Нам необходима настройка периодичности - 1 час.

Это ведь период опроса между ioLogik и SCADA, да?

Чем вызвана такая цифра - 1 час? Экономией GPRS-трафика?

Link to comment

Проверил, стоит последняя версия Active OPC 1.12.

 

По идее OPC-сервер работает как буфер данных, и он должен передавать данные на верхний уровень независимо от параметров обмена данными с нижним

 

уровнем. Вы уверены, что дело только в этом?

Да, он так должен работать, но видимо не работает. Дело именно в частоте обновлений тега.

 

Кстати, про "посылку данных раз в 30 секунд" Вы имеете ввиду настройку ioLogik, выделенную синим цветом?

Да, как на рисунке. Только я тестирую AI-канал. post-2712-0-36567800-1311672606_thumb.png

 

А если там оставить 1 час, а Heartbeat interval поставить 30 секунд (см. выделение красным), то как будет вести себя система?

Будет вести себя также. Как и в первом сообщении прерываться связь. Настройка heartbeat не влияет на описываемый глюк обрыва связи.

 

Чем вызвана такая цифра - 1 час? Экономией GPRS-трафика?

Да, экономией. Требование технического задания заказчика.

 

 

 

По моему я нашел первопричину этих разрывов связи, этого неприятного глюка:

ОРС-сервер не хочет периодически отправлять СКАДА-системе значения тегов, которые не изменялись.

Хотя должен отправлять согласно ОРС-стандартам.

Если данные изменились (пришли от контроллера), то он нормально отправляет.

Но вот если контроллер ничего не отправляет ОРС-серверу, то и ОРС-сервер ничего не отправляет дальше своим клиентам - скада-системам.

Через 30 сек в скаде срабатывает watch-dog таймер и он отключается от мертвого/молчаливого ОРС-сервера, и тут же переподключается. И так каждые 30 сек.

 

Вот описание стандартного ОРС-механзма "keep-alive" для проверки связи с ОРС-сервером (выжимка из хелпа на скада систему):

The OPC DA specification 3.0 is provided with the "Keep-Alive" feature. If the OPC DA server supports the OPC DA specification 3.0, the feature is used. The feature causes the OPC DA server to automatically trigger cyclic updating (call OnDataChange) even if the tag values have not changed. If this regular updating is disabled, the WinCC OPC DA client terminates the connection. ...Then WinCC OPC DA client attempts to re-establish the connection again, automatically.

Перевод:Спецификация OPC DA 3.0 предусматривает функцию "Keep-Alive". Если сервер OPC DA поддерживает спецификацию OPC DA 3.0, тогда эта функия используется. Эта функция заставляет OPC DA сервер автоматически вызывать циклические обновления (вызывая OnDataChange), даже если значение тега не изменилось. Если это регулярное обновление отключено/не работает в ОРС-сервере, то WinCC-OPC_DA-клиент разрывает связь. ... Затем WinCC-OPC_DA-клиент предпринимает попытку установить связь заново, автоматически.

 

 

 

Получается, вот как работает ОРС-сервер:

ОРС-сервер периодически получает новое значение тега (или то же самое неизменившееся, но с новой меткой времени), это происходит каждый раз, когда "снизу" от контроллера приходит новый пакет. Как только ОРС-сервер получает новое значение, он сам активирует стандартный ОРС-шный триггер "OnDataChange" на стороне клиента (в моем случае в скаде WinCC). По этому триггеру скада узнает что изменилось (какие теги), их новые значения и разные свойства (метки времени, и т.п.).

 

Если данные тега часто обновляются (<30сек), то все нормально. Сам ОРС-сервер каждый раз отсылает новое значение скаде.

Но вот если данные приходят редко (>30сек), вот тут-то и оно!! ОРС-сервер по-видимому перестает отсылать значения скаде! Скада не видит, чтобы ОРС-сервер присылал ей каких-либо значений в течение 30сек keep-alive watch-dog таймера. И рвет связь.

(причем настройка heartbeat вообще не влияет)

 

 

Прошу проверить мою теорию и доводы, прислать какое-либо решение проблемы:

а) либо настройки

б) либо подкорректированный ОРС-сервер

 

 

Логи с комментариями и пояснениями в

Логи.zip

Мои комментарии вставлены в разрыв строк.

Начинаются с символов "----------- "

 

15:21:18

Основные комментарии:

----------- начались цикличные считывания данных: каждые 10 секунд видим срабатывание триггера OnDataChange

...

----------- 15:25:39 - другая конфигурация. Время отсылки AI-тега раз в 1 минуту.

----------- В этот момент пришла вступила в силу новая конфигурация контроллера. Он начинает отсылать данные раз в минуту.

----------- Ниже видно, что триггер OnDataChange срабатывает очень редко.

...

----------- Тут видно, что ничего не происходит 16 секунд.

----------- Ни одного триггера OnDataChange не было.

----------- Поэтому в строке ниже появляется ошибка ERROR.

----------- Видно время dt=16250 миллисекунд, сколько времени не было сообщений от ОРС-сревера.

----------- ОРС-клиент дает первое предупреждение, и вступает в фазу OPC_CONN_CHECK (проверки связи с ОРС-сервером)

...

----------- Выше видно несколько строк, среди них ERROR, наступила фаза 2 (keep-alive timeout state=2 ).

----------- Видно время dt=36250 миллисекунд, сколько времени не было сообщений от ОРС-сревера.

----------- то есть ОРС-клиент дает последнее контрольное предупреждение, и отключается от ОРС-сервера.

----------- Ниже очистка и переподключение.... и так постоянно.....

 

 

 

 

_______________

..PS.. проверил на другом компьютере, с другим WinDows (XP SP2) и другой версией WinCC (6.2 SP2) - проблема тоже присутствует. Все точь в точь как и ранее(..

Edited by YurArm
Link to comment
  • 3 weeks later...

Добрый день!

 

Проверили новую версию Active OPC сервера.

Она действительно решает проблемы потери связи со скада системой WinCC.

 

Теперь связь держится стабильно,

на экране WinCC больше не проскакивает восклицательных значков отсутствующей связи.

 

Спасибо за помощь!

Link to comment

Спасибо за хорошие новости и приносим извинения за не сиюминутное решение проблемы.

Если будет что-то не так, дайте знать!

Link to comment
  • 7 months later...

Звонил заказчик: опять проблемы с контроллерами. По их словам у всех 8 контроллеров - нет связи, GPRS не горит.

На днях собираемся на место ехать, разбираться.

Скорее всего слетела прошивка. Однажды такое уже было.

Существует ли средство или ПО, или способ - узнать что ему не дает нормально работать, т.е. найти причину.

На месте я могу перепрошить контроллер, но это опять временное решение.

Не отправлять же его в ремонт.

 

И еще вопрос какая сейчас рабочая версия ОРС сервера?

Link to comment
Guest Stepashkin

Добрый день!

 

Возможно, проблема связана с подключением к сотовой сети. При настройке устройства во вкладке "Cellular Reconnection" нужно поставить галочку "Network Log", в случае повторного возникновения проблемы экспортировать и просмотреть этот лог.

 

Последняя версия прошивки (1.8) для W5340 лежит здесь: http://www.moxa.com/support/sarch_result.aspx?type=soft&prod_id=5&type_id=4

Последняя версия ActiveOPC-сервера (1.16) - здесь: http://www.moxa.com/support/DownloadFile.aspx?type=support&id=280

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...