Internet PLC Forum
General => Technical support => Topic started by: support on August 15, 2015, 11:24:22 AM
-
The beta version of the new major revision (i-TRiLOGI version 6.50 and 7.10) is now available for download via the "Help -> TRiLOGI Upgrade" menu from your current version of i-TRiLOGI. While we are preparing the documentation to go with the actual release this software is released as a beta now for individual users to test on their own system.We would appreciate your feedback of any issues.
The new software requires Java 6 or newer and no longer require you to install JRE 1.4.2_19. You can use the latest version of Java run time system on your PC to run the i-TRiLOGI and the new TLServer 3.2.
The following describes the major changes so that existing users can have a quick glance of the improvement and decide if you wish to upgrade to the new version.
Most of the new features are programming aid to help programmer edit their program and to better visualize the program they create.
1) Auto-completion - right click on the word that is partially completed and the software will search to find a list of I/O labels, #define name or keyword to help you complete the word. Pick from the popup menu the word you are looking for and it will replace the partial word with the selected word:
(http://www.triplc.com/yabbse/attachments/20150815/autocomplete1.png)
(http://www.triplc.com/yabbse/attachments/20150815/autocomplete2.png)
-
2) Mouse-over help on variable, defined name or I/O label. You can now move your mouse over a variable name, an I/O label name or a defined name (via the #Define table) and the software will report its value and the source (what kind of I/O or the actual variable name of a defined name).
If the online monitoring screen is open, mouse over will give you a real time report of the actual value of the variable. If the online monitoring screen is closed, then mouse over will give you the last retrieved value stored in the software. For debugging you should keep the online monitoring window opened.
(http://www.triplc.com/yabbse/attachments/20150815/mouseoverhelp3.png)
(http://www.triplc.com/yabbse/attachments/20150815/mouseoverhelp2.png)
(http://www.triplc.com/yabbse/attachments/20150815/mouseoverhelp1.png)
-
3) Defined name lookup on the view variable screen - simply click on any variable name A to Z, A# to Z#, A$ to Z$, any DM or FP variable and the software will perform a reverse look up and display any defined name.
(http://www.triplc.com/yabbse/attachments/20150815/definenamelookup1.png)
(http://www.triplc.com/yabbse/attachments/20150815/definenamelookup2.png)
-
4) New "View" "Open" and "Go Back" navigation buttons added when you right click inside the custom function editor which helps you to move from one C.F to another or retreat back to the last C.F.
(http://www.triplc.com/yabbse/attachments/20150815/cfnavigate1.png)
(http://www.triplc.com/yabbse/attachments/20150815/cfnavigate2.png)
-
5) Zoom in and out with a single-click or by pressing F11 and F12 keys. You can perform a system wide zoom from the ladder logic editor, and you can also individually change the font size of the comment editor or the custom function editor using the font size change buttons or F11 and F12 keys:
(http://www.triplc.com/yabbse/attachments/20150815/systemzoom1.png)
(http://www.triplc.com/yabbse/attachments/20150815/systemzoom2.png)
Comment Editor zoom buttons (you can use F11 and F12 key too).
(http://www.triplc.com/yabbse/attachments/20150815/commenteditorzoom.png)
Custom Function Editor zoom buttons (you can use F11 and F12 key too).
(http://www.triplc.com/yabbse/attachments/20150815/cfeditorzoom.png)
-
Having difficulty with new version. When attempting to run 6.50 I get the "Java Virtual Machine Launcher" window with this message: "Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' has value '1.8', but '1.7' is required."
If I click "OK" on this window I get a series of additional error windows for Java:
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment
At present I have versions of Java 1.8, 1.7 and 1.4 installed. Using the Java control panel I have disabled all of the versions of Java except 1.7 and this does not allow i-TriLOGI to run.
Suggestions?
gary d
-
It probably have something to do with the multiple JVM setup. Googled and found some similiar reports and hopefully the suggestions by other users can be helpful:
http://stackoverflow.com/questions/26324486/properly-installing-java-8-along-with-java-7
--------------------------------------------------------------------
In the START menu type "regedit" to open the Registry editor
Go to "HKEY_LOCAL_MACHINE" on the left-hand side registry explorer/tree menu
Click "SOFTWARE" within the "HKEY_LOCAL_MACHINE" registries
Click "JavaSoft" within the "SOFTWARE" registries
Click "Java Runtime Environment" within the "JavaSoft" list of registries here you can see different versions of installed java
Click "Java Runtime Environment"- On right hand side you will get 4-5 rows . Please select "CurrentVersion" and right Click( select modify option) Change version to "1.7"
Now the magic has been completed
-
The registry edit did not help as my system does not have a JavaSoft registry key.
This is what I did:
1. Uninstalled all traces of i-TRiLOGI
2. Uninstalled all versions of Java (1.4, 1.7 and 1.8)
3. Rebooted my PC
4. Scrubbed the registry for left overs using CCleaner
5. Installed only the most current version of Java, 1.8.0_60
6. Installed new (beta) version of i-TRiLOGI
Now I can get both the 6.50 and 7.10 versions of i-TRiLOGI to run.
Thanks,
Gary D*ckinson
-
Thank you for the update. I googled again on this issue and found out that on 64-bit Windows the Javasoft registry key is in the following folder:
HKLM/SOFTWARE/Wow6432Node/JavaSoft/Java Runtime Environment/CurrentVersion
I guess since you have already uninstalled everything and re-installed new JVM and now get TRiLOGI to work, you won't need to do this anymore and this information is for the benefit of those who may encounter the same problem that you did.
Anyway, I hope you enjoy using the new features and do feel free to report any issues you face.
-
The move to current Java versions has solved many of the ugly behaviors and interactions with other programs. This is a welcome improvement. I've noticed several other improvements.
I have noticed a couple things with the "Define Variable Names" window:
- When first opened by pressing on the #Define button in the Custom Function Editor, the "Define Variable Names" window opens to and places it's focus not at the first entry in the table but about line #127 to #147. If the pc6 file is saved and i-TRiLOGI is exited and restarted the "Define Variable Names" window will open to this odd position. This suggests some variable in i-TRiLOGI is getting initialized with a value unrelated to the table of of defines.
- The Delete Row function quits working, often. The "Delete Row" menu selection from the right-click menu has no effect. I have not been able to easily reproduce the sequence of events that leads to this function failing, but exiting and restarting i-TRiLOGI fixes the problem for a while. I suspect that the row # variables used in the "Define Variable Names" window "thinks" that I have specified an row to delete that is not presently visible (this may be related to the issue with this window starting at odd line numbers...).
- The behavior of the Delete Row function is vastly improved over the older code. The current behavior is predictable. If you delete row #10 the focus goes to row #9. This does force you to keep re-positioning the focus if you what to delete a group of lines starting at line #10 through #20. It may turn out that if I retrain myself to delete starting at #20 and work upwards that I'd fight less with the editor.
- If the line is blank there is no confirmation window before deletion. If the Line contains text then there is a confirmation window. This seems a bit inconsistent.
- Edits of the Define table are not tracked as a modification to a file. If you edit the define table and then attempt to exit the file, the "File has been modified" window will not pop up and you will not be presented with the "Do you want to Save Current File?" dialog.
p.s. I'm seeing the same behaviors with "insert row" for the define table. It just stops working and I have to exit and restart i-TRiLOGI to get it working, again.
Gary D*ickinson
-
The lower window for the custom function editor can overlap the main edit window. This results in the edit cursor disappearing and the horizontal scroll bar disappearing.
It is possible to fit the overlap by moving the dividing bar between the window, but this is just smply messy behavior. I would assume that the two text boxes are not to overlap but to share the Custom function editor window in some more graceful fashion.
Gary D*ickinson
-
Gary - Thank you for your invaluable feedback, as always.
We have just released build 02 of the i-TRiLOGI 6.50 and 7.10 beta (same download link).
We have fixed a number of display issues when zooming in and out to very large extent during our tests. So the new version should work well for those who have very high resolution monitor and need to make the software more readable.
Regarding the #define table issues, we have fixed it and make the insert row/delete row more logical by having the focus stay on the same row after you have inserted or deleted a row.
As for the deleting of blank row we feels that it is quicker for user to delete a number of unused rows without having to answer to confirmation request so that will stay.
We are however unable to reproduce this issue:
When first opened by pressing on the #Define button in the Custom Function Editor, the "Define Variable Names" window opens to and places it's focus not at the first entry in the table but about line #127 to #147.
When we open a file and #Define table for the first time the focus is on the first row. If you can send us your file we can check to see if any issue with the file that could have resulted in the issue.
We have fixed the issue that you reported regarding dragging of the divider bar on the custom function editor split screen.
Please feel free to feedback to us if you encounter any new issues.
Thank you.
-
Thanks, I just downloaded build #02. I still have the #Define issue with the window opening at about line #127.
I've attached the PC6 file that I have observed this problem. The #Define table opens with the focus on line #1 in 6.49 build 04.
Build #02 does not fix the issue where edits to the #Define table are not considered an edit to the PC6 file. Exiting i-TRiLOGI does not result in the "File has been modified" window that requests confirmation, "Do you want to Save Current File?
This issue exists in 6.49 build 04. So it isn't a new problem.
The Define Variable Names Insert/Delete rows functions fail in Build 02 and requires exiting and restarting of i-TRiLOGI to get these functions to work.
I have, also, noticed that in some cases, the Insert row command will insert a new row somewhere else in the Define Variables table other than where I have clicked on a row. I suspect that the Insert/delete functions are not failing, but some row # variables that are attempting to track focus variable has gotten scrambled. I suspect that this is the case with the table oppenning to the wrong row.
Gary D*ickinson
-
Thank you for sharing the file. We were able to reproduce your reported issue (#define table opens up at row 127). We will submit this bug report which should be fixed in the next or official release.
Normally you can only access the #Define table by opening up a custom function, which would result in the program alerting you to save the file when you quit regardless of whether you have made any changes to the #Define table so we are a little surprise of your report as we can't replicate it. Anyway I believe we can add in that condition in the next release.
-
I can duplicate the issue with editing the #Define table does not prompt for a file change on version 6.49 build 04 running with Java 1.4 on a PC that has never had the beta software installed.
I'm pretty sure that this behavior has existed for a long time.
Gary D
-
We just tested using JRE 1.6 to run the jar file and the #Define table opens nicely to row #1. But when we run it using JRE 1.7 we did experience that the #Define jumpt to row 127. So I think there may be an issue with the newer JRE. We will see if there is a workaround.
-
OK, You guys can't duplicate the failure of the #Define mechanism failing to insert rows and delete rows.
Add to the list of problems that the import/export #Define, also fails. To get it to work, you must exit i-TRiLOGI.
I have found that the #Define mechanism cannot import a define table where the "Variable" argument is "", no text.
The exported file cannot be imported!
I've attached the #define table that was exported and then cannot be imported. I have not edited this file in any way. It will import up to row #24 and then it quits.
This is the first part of the file that was exported:
# #Define Name Value
1 EEPLayout "EEP_V1.02"
2 EEPLayout_S 1
3 ProgramName "DSGaging"
4 ProgramName_S 2
5 ProgramVersion "V1.00"
6 ProgramVersion_S 3
7 SystemName_S 4
8 EOF -1
10 TankID_Base_S 10
12 SensorFailRelays RELAY[2]
13 Level95Relays RELAY[3]
14 Level97Relays RELAY[4]
16 SystemStatus DM32[1]
17 SystemVolume DM32[2]
18 SystemUllage DM32[3]
19 FP1Volume DM32[4]
20 FP2Volume DM32[5]
21 FP3Volume DM32[6]
22 FP4Volume DM32[7]
23 SysCapacity DM32[8]
24 SysVolDvDt DM32[9] <--- last line that was successfully imported
26 __EEP16__Map
27 SysConf_I16 10
28 TankMap Load_EEP(10)
29 Filler1Map Load_EEP(11)
30 Filler2Map Load_EEP(12)
[/font][/color]
I know that you don't what to fix anything else until the next formal release, but I don't think that your are ready for a formal release. If you are not willing to fix the reported problems, I am not willing to continue acting as unpaid code tester.
Please let me know when you have fixed the problems that I have reported. I am sorry that I cannot continue to debug this beta code.
I've attached the offending exported #define file
Gary D*ickinson
-
As far as I am aware, the current versions of Java is 1.8.0_60-b27
If you are not testing with 1.8.0, you are not using the current Java. I though that the goal of this code was to work with current Java versions.
Java 1.4 was released in 2002
Java 1.6 was released in 2006
Java 1.7 was released in 2011
Java 1.8 was released in 2014
So you are building code that runs with Java 1.6. This is only 9 years out of date?
Gary D*ickinson
-
Thank you for your feedback. Actually we have been fixing reported bugs as we receive them. It is just that it won't do anybody any good to be releasing a new version every day or every few hours as we fix minor reported issues (it will confuse other users who are testing other parts of the program). We wanted to consolidate several updates before releasing a new beta. However we do understand that you would like to see reported issue fixed asap and we shall email to you new unreleased version which fix specific issues that affected you for your quick test before the next release.
As for the define table not importing after encountering a blank field, that bug will be fixed and we should be releasing a new beta today that address this issue.
There are good reasons why we develop the code using the JDK 1.6 library. First of all we can't assume that all users will have Java 1.8. In fact Java 1.8 does not even run on Windows XP and there are still a lot of users who are staying with XP because the newer Windows just don't work with some software that are critical to engineers. Secondly we have users in other parts of the world and for various reasons people do not always need to or want to upgrade to newest Java. So our goal is to develop our software that will run on the most platforms to benefit the maximum number of users.
Also as have you noted that Java 1.6 was available for a long period of time and by the time they released the last version of JDK 1.6. the good folks at Java has fixed all the known bugs. So we know that the library as good as it can get. The newer Java added new features unsupported on older Java but at the same time also added a bunch of bugs and sometime even cause problem to stable codes that run well on Java 1.6 (which they will then release multiple fixes). In fact the intermittent problem with the popup menu quit working in #Define table that you reported is most likely caused by the popup menu items listener not registered properly with Java. We could reproduce it (intermittently as you have noted) when testing with JRE 1.7 and 1.8. When this issue occurred Java absolutely did not report any exception that cause the registered listener to be lost. However, we don't seem to encounter it on Java 1.6. We are still investigating this issue and will be experimenting some workaround.
The inconsistent behavior of Java from one version to another is the main reason why for the longest time we install JRE 1.4.2_19 during TRiLOGI setup and invoke JRE 1.4.2_19 to run the I-TRiLOGI so that the user will have a consistent experience that we can support. We remember when Java released the version 1.5 it has so many bugs and caused so much problems that we scrambled to get our user to install JRE 1.4 just so that TRiLOGI can run properly. Java 1.5, like Windows Vista is something that nobody wants to remember ever existed. Most engineers do not have the time to play catch up with the myriad of new releases of Java and Windows. They just want something that work well and so that they can get their work done quickly.
We are releasing the new I-TRiLOGI 6.50 and 7.1 as beta so that our users have a chance to test them on different Java and Windows platform. Our goal is certainly for them to work well across all Java version from 1.6 to 1.8 or later so that our users can run them well on whatever Java version on whatever Windows they have on their system. So feedback like what you did are greatly appreciated and will help us achieve the goals. Thank again.
-
We have just released Build 03 beta for download. It should fix almost all your reported issues. The import function on #Define table now import imperfect files properly. However, the first column must still be a number between 1 and 1000 otherwise the import function will still quit working.
The workaround for the #Define table popup menu is to create a new popup menu object each time you open the #Define table. This way if the listener is lost, you can close the #Define table and reopen it and a newly refreshed popup menu should be available without having to quit i-TRiLOGI software. We tested several round with newer JRE and did not experience the popup menu not working - but feel free to let us know your experience with it.
Thanks.
-
Build 03 is much, much better. I have worked all day with it and the problems with the #Define table have not returned. In fact, I haven't broken any new stuff.
So I got a little bored and tried some things that, traditionally, break the current released code. And since you guys are in a mood to fix stuff...
The problem is with the "Cut Circuit" and "Delete Circuit" behavior. Both of these operations open a window to specify the beginning and ending line numbers to cut/delete. Neither of these actions 100% use the line numbers entered by the human to determine what lines to cut/delete.
This is a ladder logic program that is nothing but comments. Each group of 3 lines of text is a single ladder rung/circuit. I've attached a copy of this program to this email.
Now this is how you break the ladder logic editor:
- Scroll the down to the bottom of the file. You need to have only a few lines visible on the screen, say Circuits 18..20
- Click on circuit #20 so that a little red arrow appears to the left of this circuit and "Circuit # 20" is visible in the button on the top left
- Edit-->Cut Circuit to open the "Cut Ladder Circuits to Clipboard
- From Circuit # 2
- To Circuit # 10
- Press "Yes" to confirm.
- Verify Circuits #2..#10 are not the ones deleted. In my case circuits #12..#20 were actually deleted.
Cut/Delete old works reliably if the focus is on the first line to be deleted and this line must be view able in the editor. If you scroll down to verify the circuit number of the last rung to delete, you must scroll back to the first run of the group that you what to delete.
Code appears to use the difference between the "From" and "To" line number to determine how many runs to delete, but does not use the "From" value to determine the first line to delete. The first line deleted is some incorrect inference based on the "current focus" of the ladder logic editor.
Best Regards,
Gary D*ickinson
This is the program before the "Cut":
*********************************************************************************************
Circuit #01
*********************************************************************************************
*********************************************************************************************
Circuit #02
*********************************************************************************************
*********************************************************************************************
Circuit #03
*********************************************************************************************
*********************************************************************************************
Circuit #04
*********************************************************************************************
*********************************************************************************************
Circuit #05
*********************************************************************************************
*********************************************************************************************
Circuit #06
*********************************************************************************************
*********************************************************************************************
Circuit #07
*********************************************************************************************
*********************************************************************************************
Circuit #08
*********************************************************************************************
*********************************************************************************************
Circuit #09
*********************************************************************************************
*********************************************************************************************
Circuit #10
*********************************************************************************************
*********************************************************************************************
Circuit #11
*********************************************************************************************
*********************************************************************************************
Circuit #12
*********************************************************************************************
*********************************************************************************************
Circuit #13
*********************************************************************************************
*********************************************************************************************
Circuit #14
*********************************************************************************************
*********************************************************************************************
Circuit #15
*********************************************************************************************
*********************************************************************************************
Circuit #16
*********************************************************************************************
*********************************************************************************************
Circuit #17
*********************************************************************************************
*********************************************************************************************
Circuit #18
*********************************************************************************************
*********************************************************************************************
Circuit #19
*********************************************************************************************
*********************************************************************************************
Circuit #20
*********************************************************************************************
[/color][/font]
This is the program after the "Cut":
*********************************************************************************************
Circuit #01
*********************************************************************************************
*********************************************************************************************
Circuit #02
*********************************************************************************************
*********************************************************************************************
Circuit #03
*********************************************************************************************
*********************************************************************************************
Circuit #04
*********************************************************************************************
*********************************************************************************************
Circuit #05
*********************************************************************************************
*********************************************************************************************
Circuit #06
*********************************************************************************************
*********************************************************************************************
Circuit #07
*********************************************************************************************
*********************************************************************************************
Circuit #08
*********************************************************************************************
*********************************************************************************************
Circuit #09
*********************************************************************************************
*********************************************************************************************
Circuit #10
*********************************************************************************************
*********************************************************************************************
Circuit #11
*********************************************************************************************
[/color][/font]
And as always, the Edit menu lists "Ctrl-X" as a short cut for cutting ladder logic rungs, but this has never worked. Just edit it out of the menu.
-
I have been working with both Builds 03 and 04. Things are getting better. I am having fun with the new features.
I still have the problem with the #Define table becoming non responsive to the Insert/Delete row. I don't see that it has been fixed.
The suggested work around for the problem was to "close the #define window and then re-open it". I have not seen this work, yet.
I find that the only way to "fix" the problem is to close i-TRiLOGI and then restart i-TRiLOGI.
I have found a method to "break" the #Define table, instantly. I don't know if this has anything to do with the underlying problem, but it might provide a clue. I can break the #Define table by opening a second instance of i-TRiLOGI to edit a different PC6 file. This instantly kills what ever software mechanism is supposed to handle the #define table insert/delete row request.
I often run 2 instances of i-TRiLOGI for the purpose of copying CFs from one file to another. As there is no mechanism to "include" a library of debugged code into a PC6 project, I resort to copying debugged code from small projects into the master project. I have found that this approach "works" just enough to copy code from one file to another. After saving the file that received the new custom functions, I save that file and then close both instances of i-TRiLOGI.
In general, running 2 instances of i-TRiLOGI simply does not work very well. I don't expect them to work 100%. I am not asking you to fix the issues with attempting to run 2 copies of i-TRiLOGI, but possibly this will provide a clue as to how the #define table breaks when running only 1 copy of i-TRiLOGI .
Gary D*ickinson
(I assume you know why I am using the "*")
-
I have run into an issue with cutting and pasting of CF text between 2 instances of i-TRiLOGI.
I am running Java version 1.8.60 on a 64 bit Windows 7 PC.
This used to work on earlier versions of i-TRiLOGI:
I could open 2 instances of i-TRiLOGI
I could copy text from a custom function using ^A to select all and ^C to copy text.
I could then paste this text into the 2nd instance of i-TRiLOGI by using ^V to paste.
With i-TRiLOGI 6.50 build 05 i can copy the text but not paste it into the 2nd instance.
However, I can copy the text from the 1st instance and then paste it into another application, Notepad++. I can then copy from Notepad++ and paste it into the 2nd instance of i-TRiLOGI.
I use this copy/paste between instances to reuse tested working code from one project and put it into a 2nd or new project.
I just wondered if this is a small issue with the new implementation.
Gary D*ickinson
-
A bug has reappeared in V6.50. This was fixed in earlier version of i-TRiLOGI.
If a #Define table is exported, it is exported as some sort of Unicode file. If the output file is opened in Excel the first few lines look like this:
þÿ# #Define Name Value
10 __Modbus__ Definitions
11 ModbusPort 1
12 MBQuery 401
13 MBQuerySize 99
14 MBQSlaveAddr DM[401]
15 MBQFunctionCode DM[402]
[/color][/font]
If this file is edited in Excel and saved it cannot be re-imported as a #Define table. Something about the Unicode file mark.
If the first 2 characters up to the first "#" are removed and then saved by Excel the file can be imported.
I live and work in the US and have no need for Unicode. I am poorly educated and limited to communicating in English. 8-bit ASCII works for me and my tools. I never deal with Unicode and as a result don't recognize what is happening. It is not second nature to me.
Yes I can work around this by carefully editing the files. However, Unicode is tricky and tends to be transparent to most applications such as Notepad++. But since the #Define data tends to be table-like, I find that Excel is a great tool for manipulating this data.
Tnx,
Gary D*ickinson
-
Thank you for your report. I have tried doing exactly what you described and I have no problem copying custom function text from one function on first instance and then paste into the custom function editor of the second instance. In fact copy could be made by Ctrl-C or right click and select "Copy" and then paste into the custom function in the second instance.
We will test on other platform to see if we can reproduce what you reported.
Thank you.
I have run into an issue with cutting and pasting of CF text between 2 instances of i-TRiLOGI.
I am running Java version 1.8.60 on a 64 bit Windows 7 PC.
This used to work on earlier versions of i-TRiLOGI:
I could open 2 instances of i-TRiLOGI
I could copy text from a custom function using ^A to select all and ^C to copy text.
I could then paste this text into the 2nd instance of i-TRiLOGI by using ^V to paste.
With i-TRiLOGI 6.50 build 05 i can copy the text but not paste it into the 2nd instance.
However, I can copy the text from the 1st instance and then paste it into another application, Notepad++. I can then copy from Notepad++ and paste it into the 2nd instance of i-TRiLOGI.
I use this copy/paste between instances to reuse tested working code from one project and put it into a 2nd or new project.
I just wondered if this is a small issue with the new implementation.
Gary D*ickinson
-
I just tried cut and paste between instances of i-TRiLOGI and it seems fine. It is working with both ^C and the right click window.
If I can figure out the sequence of events that got me to the point where the cut/past between instances broke, I'll let you know. I suspect that this is some very complicated bit of Java run time code getting unhooked from the OS.
Please don't spend any time on this issue.
Best regards,
Gary D*ickinson