Cimplicity Event Manager

  • Thread starter Peter Mellemans
  • Start date

Thread Starter

Peter Mellemans

The application is a Manufacturing Execution system, with around 20 events a second (Passing light curtains, torqueing, pushing buttons, .... ), every input (around 2000) is linked to 1 event, which calls a CIMPLICITY script (around 20 different scripts) which then calls a VB dll, this dll returns a result (an array of point-ids and values), Cimplicity scripting then sets the different points with the respective values.

At this moment we have 2 different problems :

1) We are missing events, the event manager cannot handle the 20 events a second, it sometimes just hangs for around 2-4 seconds, so he starts queing events, but we need a response time of 1 second. When we run a script manually it takes around 50-150 ms to process, but when started from the event manager it can take up to several seconds to finish executing.

2) The event is fired, the script is called, the VB-Dll returns the result (this is a question of 50-100 ms, but then CIMPLICITY must perform for example just 3 pointsets, this can take up to around 12 seconds.

I've tried to boost the performance in all possible ways, run project at high priority, tried changing CE_MAX_DELAY, CE_THREAD_TIMEOUT, using the point buffer file, removing SQL database from CIMPLICITY sever and setting up a second PC with only a SQL server, adding memory, boosting CIMPLICITY VB-scripting code, calling external executables instead of CIMPLICITY scripts, setting some events on CIMVIEW level not in EM_RP, ... sometimes we could see some improvement, but not enough for this project to run stable for 24 hours.

I think it all comes down to the EM_RP process, we have a powerfull PC available, but the EMRP.exe process just takes aroung 5-10% CPU and 180 threads, while it has 90% CPU available.

Any ideas?