Author Topic: iTRiLOGI Version 6.50 and 7.10  (Read 57944 times)

support

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3174
    • View Profile
    • Internet Programmable PLCs
Re:iTRiLOGI Version 6.50 and 7.10
« Reply #15 on: August 26, 2015, 04:17:29 PM »
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.
Email: support@triplc.com
Tel: 1-877-TRI-PLCS

garysdickinson

  • Hero Member
  • Posts: 502
  • Old PLC Coder
    • View Profile
Issues with #Define
« Reply #16 on: August 26, 2015, 10:32:57 PM »
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
« Last Edit: August 26, 2015, 11:02:04 PM by garysdickinson »

garysdickinson

  • Hero Member
  • Posts: 502
  • Old PLC Coder
    • View Profile
Current Java
« Reply #17 on: August 26, 2015, 10:41:50 PM »
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
« Last Edit: August 26, 2015, 11:04:28 PM by garysdickinson »

support

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3174
    • View Profile
    • Internet Programmable PLCs
Re:iTRiLOGI Version 6.50 and 7.10
« Reply #18 on: August 27, 2015, 10:10:12 AM »
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.







« Last Edit: August 27, 2015, 10:31:36 AM by support »
Email: support@triplc.com
Tel: 1-877-TRI-PLCS

support

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3174
    • View Profile
    • Internet Programmable PLCs
Re:iTRiLOGI Version 6.50 and 7.10
« Reply #19 on: August 27, 2015, 11:06:48 AM »
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.
Email: support@triplc.com
Tel: 1-877-TRI-PLCS

garysdickinson

  • Hero Member
  • Posts: 502
  • Old PLC Coder
    • View Profile
Re:iTRiLOGI Version 6.50 and 7.10
« Reply #20 on: August 28, 2015, 04:41:02 PM »
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.
« Last Edit: August 28, 2015, 04:53:20 PM by garysdickinson »

garysdickinson

  • Hero Member
  • Posts: 502
  • Old PLC Coder
    • View Profile
Re:#Define table breaking and workarounds
« Reply #21 on: September 01, 2015, 05:41:38 PM »
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 "*")
« Last Edit: September 01, 2015, 10:28:45 PM by garysdickinson »

garysdickinson

  • Hero Member
  • Posts: 502
  • Old PLC Coder
    • View Profile
iTRiLOGI Version 6.50 and 7.10 Copy/Paste
« Reply #22 on: November 02, 2015, 07:17:30 AM »
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

garysdickinson

  • Hero Member
  • Posts: 502
  • Old PLC Coder
    • View Profile
iTRiLOGI Version 6.50 and 7.10 Define Variable Name Export
« Reply #23 on: November 02, 2015, 12:06:02 PM »
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



support

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3174
    • View Profile
    • Internet Programmable PLCs
Re:iTRiLOGI Version 6.50 and 7.10 Copy/Paste
« Reply #24 on: November 03, 2015, 06:30:51 AM »
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
« Last Edit: November 03, 2015, 12:46:25 PM by support »
Email: support@triplc.com
Tel: 1-877-TRI-PLCS

garysdickinson

  • Hero Member
  • Posts: 502
  • Old PLC Coder
    • View Profile
Re:iTRiLOGI Version 6.50 and 7.10
« Reply #25 on: November 03, 2015, 11:02:00 AM »
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