Host Engineering Forum
General Category => DirectSOFT => Topic started by: stewy on February 28, 2011, 01:14:08 PM
-
Hey everyone, first time poster here.
I am wondering if anyone can help me with the Infinite Loop Timeout error I've been getting. It's an error generated by directsoft not by an error in the PLC logic like I originally thought. When it happens the error window tells me that the database documentation may be corrupt and that I might want to increase the infinite loop timeout setting. I've changed this value by editing the ds500.ini file but for some reason it eventually gets overwritten with the old value.
Anyone out there know what I can do to fix it? My element documentation is getting corrupted due to this.
Thanks!
-
One of the engineers here might be able to tell you more, but I'll tell you what I know about this having encountered it a few times. InfiniteLoopTimeout is DirectSOFT's internal loop timeout value as a protection against infinite loops that can cause crashes. This number is the maximum number of loops allowed to do an internal operation in DirectSOFT. Under normal conditions, this number will never be reached. But in cases where there could be very large databases, this number may need to be increased to allow DirectSOFT more loops to complete a certain operation.
Are your documentation files (.ESD, .ESX, .LCD, .LCX, .LDA, .SCD, .SCX) abnormally large? You may be reaching this loop value due to a corrupt database already.
(See DirectSOFT FAQ0040: http://www.hosteng.com/FAQFiles/DirectSOFT.htm#FAQ0040)
Also, if the value you give InfiniteLoopTimeout "gets overwritten with the old value" this may be because you are using WinVista or Win7 and have the UAC (User Access Control) turned on.
(See DirectSOFT FAQ0204: http://www.hosteng.com/FAQFiles/DirectSOFT.htm#FAQ0204)
-
Thanks Greg,
Definitely looks like it was a corrupt database. I tried exporting element documentation and ended up with a 2MB csv file. I had a closer look at it and noticed that there was a chunk of elements that were repeated over and over again all the way down to line 65536 (i'm sure it's no coincidence that this is also the infinite loop timeout setting).
I uploaded the project to a PLC and then pulled it off without documentation, I was able to salvage some from the csv file but am filling out everything else manually.
I'm using Windows XP... not sure why it is overwriting that value. As soon as a restart directsoft it puts that value back to the default. It's weird because it didn't behave that way when I turned autosense off in the ini file.
Thanks for your help!
-
stewy, there is something you might try in order to salvage some of the documentation. You can open up two instances of DirectSOFT and pull up the corrupt database in one (because it is not all corrupt), and then use the select and arrow keys to select chunks of that database, and Copy it, and then switch to the other instance of DirectSOFT with no program pulled up (i.e. new project), and Paste that chunk into a new database. When you've salvaged all you can (i.e. you reach that corrupted place; where it acts weird), then you can save off the new project. Then simply rename the resultant documentation files to the same name as your corrupted one.
If you take care while doing this, it saves you from having to recreate all that data again. You can sometimes get most of it back with a relatively small amount of pain.