Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - support

Pages: 1 2 [3] 4 5 ... 209
Technical support / Re: TBASIC Input On/Off Question
« on: December 09, 2019, 08:58:31 PM »
Hi Gary,

Thanks for the excellent explanation. We couldn't have done it any better than what you did.

Just add a note to someone new to TBASIC - the variables represented by INPUT[] and OUTPUT[] are stored in internal memory and they are normally only synchronized to the physical I/Os at the end of the ladder logic scan. So it will be a mistake to monitor an input inside a TBASIC loop because these internal memory do not change state:


The PLC program will be stuck in the WHILE loop because IN5 will never be turned ON.  You can force the internal I/O to be updated using the REFRESH statement:


REFRESH statement will update the memory INPUT[] to the states of the associated 16 physical inputs. There is a penalty of I/O scan time being used each time you run the REFRESH statement (about 2ms for a FMD or Fx PLC, shorter for Nano-10) so you want to use it only when necessary.  Letting the ladder logic monitor changes in input and use it to trigger custom functions for TBASIC processing will normally be a lot more efficient than monitoring it inside a WHILE loop.

Technical support / Re: Fx2424 PLC backwards compatible with T100MD2424
« on: December 09, 2019, 04:08:45 PM »
Fx2424 is NOT a drop-in replacement for T100MD2424. In most cases you can get by with small modifications if you want to use Fx2424 to replace T100MD2424+. Note the following differences:

1) Output 7 and 8 on T100MD2424 are PNP type (ON = 24VDC, OFF = 0V DC).  All outputs on Fx2424 are NPN types (ON = 0V, OFF = open circuit (with weak pull up to 24VDC)

2) On T100MD2424+ the Analog output 1 and 2 shared the pins with analog input 7 & 8.  On Fx2424 the analog outputs are on their own dedicated pins.

3) On T100MD2424+ the PWM channel 1 and 2 are on output 7 and 8.  On Fx2424 the PWM channel 1 to 4 are occupying output 5 to 8

4) On T100MD2424+ the high speed counters shared with input #3,4,5,6. On Fx2424 the high speed counters shared with input #1 to #6 (there is an additional high speed counter on Fx2424).

These difference may or may not be applicable to your applications, depending on whether you are using these features or output 7 & 8.

The exact same program that ran on the T100MD2424+ however can be compiled and transfer to the Fx2424. You just need to ensure that the special I/Os are wired to the correct terminals.

Technical support / Re: Custom Function Editing Window Issue
« on: December 09, 2019, 04:06:23 PM »
We have never encountered the issue you showed on your screen shot.

It is likely has something to do with the graphic driver.

You mentioned that the TRiLOGI screen display fine on your laptop screen. Does your laptop has 4K screen built-in or it is driving an external 4K monitor? Does it happen when you move the iTRiLOGI windows from your laptop screen to the 4K screen when resolution changed?

You may want to try to disable some graphic acceleration in graphics card as these sometime introduce incompatibility.

Are you using 32-bit Java JRE?

Technical support / Re: Custom Function Editing Window Issue
« on: December 03, 2019, 05:08:38 PM »
What is your iTRiLOGI version?

Try to upgrade to the latest version by following the "Help-> Upgrade TRiLOGI" link in your existing iTRiLOGI software and upgrade to version 6.6 or 7.2 which support 4K display on the 4K laptop that we tested.

If you already have the latest i-TRiLOGI and still having trouble with the Custom Function editor in 4K monitor, please post a screen shot of the custom function so that we can see what can be done.

Technical support / Re: web page 0.htm DM32 value display
« on: October 07, 2019, 11:34:21 PM »
If you have two 16-bit value, say lower 16-bit in DM[1] and upper 16-bit in DM[2], then you can form a 32-bit number by defining a variable in Javascript such that:

var data32 = DM[2]<<16 + DM[1]

You will need to know some javascript and jquery so that you can insert the value of the variable "data32" into the 0.htm page from the javascript file M.JS (in particular the refreshScreen() function) so that it will display on the 0.htm page.

Technical support / Re: Programming to PLC
« on: September 29, 2019, 08:21:01 PM »
You mentioned in one of your emails that you have T100MD+ PLC which is EOL 8 years ago.

Anyway, it sounds like either someone has put a password in the PLC or the EEPROM is corrupted or damaged. You can try to use TRiLOGI software to transfer a program into the PLC and it will ask you if you want to delete the password and select yet. After you have transferred the program you can turn power off to ON again and see if the new program works. If the new program is not retained then the EEPROM is damaged and you may need to purchase a replacement.

Technical support / Re: Max frequencies on regulare input
« on: September 26, 2019, 04:29:10 PM »
The FMD1616 PLC has an I/O scan time of 2ms. The program scan time depends on how your program is written and can vary.

If you only run a couple of rungs of ladder program and it does nothing more than just count pulses it may be able to handle up to 200 Hz. But if you have custom function that may take up long time (e.g. communicating with 3rd party devices via serial or Ethernet port) then the time varies. It is best if you use a separate FMD88-10 which has 4 interrupt inputs and 4 regular inputs and if this slave PLC does simple counting you should be able to handle your 30 to 50Hz pulse inputs.

General Discussions / Re: Double debounce design
« on: September 19, 2019, 08:21:27 PM »
Looks like a good circuit. We would have done it similarly.

One other way is to use custom function and sample the input change with refresh and DELAY statement. You want to ensure that once an input is turn ON it last for at least 100ms without changing state.  It will use less ladder logic but with more codes in custom function. Also the scan time is longer using a custom function since the CPU blocks at the CF that samples the input. So ladder circuit with timer is still the most efficient way to achieve this.

Technical support / Re:User written Modbus RTU example code
« on: June 19, 2019, 08:14:39 AM »
Thanks for the great contribution to the community!

Each time when you make a Modbus TCP connection to the (3rd party) Modbus TCP server you have to wait for the connection to be made before you can run the READMODBUS or WRITEMODBUS command successfully.

Since you have two Modbus TCP server devices and there is only one client port on the FMD PLC, you have to make a connection, check that the connection is successful, the perform the READMODBUS or WRITEMODBUS command, then check STATUS(2) to ensure that you get a good result. Finally close the connection. You then connect to the second device and you must do the same by checking that the connection is made then READ or WRITEMODBUS command, check the communication status, then close the port.

It can be done on the fly reasonably fast especially the the devices are all on a LAN.

Technical support / Re:Jog Moves with Step / Dir
« on: March 12, 2019, 09:55:22 AM »
Gary's suggestion is what we would normally advise users too.

The good news is that since firmware version r70 (on FMD and Nano-10) and on all the Fx series since firware version F90.0 we have implemented stepjog function which is to STEPMOVE with either &H7fffffff or &H80000001 for infinite rotation in positve or negative directions, respectively.

Hopefully this answers to your question. This should have been included in the manual. Will bring this up with the staff who maintain the manuals to include in future editions.

Technical support / Re:NETCMD$
« on: March 02, 2019, 01:46:28 PM »
Unlike serial port connecting via Ethernet is not a one to one. All Ethernet communication are made via virtual connection channel established in a shared medium.

So you must first make a  connection to the server using the PRINT #4 "<CONNECT>.

You have to verify that the connection is successful. After the connection has been established, you can the communicate with the slave using the same NETCMD$ command and yes you can just replace the comm port #2 with comm port #4 and all the commands are identical.

Your program should also monitor the connection and stop the communication if the socket connection has been lost with the server.

Technical support / Re:Reading Mechanical Encoder
« on: March 01, 2019, 08:26:35 AM »
The FMD, Nano-10 and Fx series of PLC can directly read standard quadrature encoder inputs. Each high speed counter only needs two digital inputs (see Chapter 6 on the mappings to the digital inputs).

However, if you are trying to read a specialty encoder using ladder logic it may not be fast enough to process in real time due to the time lag in the I/O scan (about 2ms for FMD and Fx PLC. Much shorter for Nano-10 since there is no expansion I/O) which means that you may miss some rising / falling edge.

You may also try to use the interrupt inputs to handle the specialty encoder.

Technical support / Re:Perplexed by puzzling parentheses pecualiarity
« on: February 21, 2019, 12:16:14 PM »
Thanks Gary for the formula.

To increase precision you can use a fixed point format

F = C*90/5 + 320

The result will be expressed in 0.1 degree F.

E.g. C = 22 degree

F = 22*90/5 + 320 = 716  = 71.6 degree F.

Hi Gary,

It appears that the funny characters all appear in the TBASIC codes that you are showing in your post. Did you copy those directly off a custom function editor or were these exported to an external file and then copied from the external file?

I copied one of the fragment of codes you posted  that was showing funny characters and pasted inside a TL6 custom function. I removed the funny characters and replaced them with TABs,  then copy them back and paste them into this forum post as shown  below:

' Custom function to print 0..99 on serial device #2
' This is the text that will be sent to the serial device:
'   00 01 02 03 04 05 06 07 08 09
'   10 11 12 13 14 15 16 17 18 19
'   20 21 22 23 24 25 26 27 28 29
'   30 31 32 33 34 35 36 37 38 39
'   40 41 42 43 44 45 46 47 48 49
'   50 51 52 53 54 55 56 57 58 59
'   60 61 62 63 64 65 66 67 68 69
'   70 71 72 73 74 75 76 77 78 79
'   80 81 82 83 84 85 86 87 88 89
'   90 91 92 93 94 95 96 97 98 99
print #2 "First Version"      ' Debug Message
for i = 0 to 9         ' outer loop for the 1s digits
   for j = 0 to 9      '   inner loop for the 10s digits
   print  #2 i;j;" ";      '  print each number with 2 digits and a space
   print #2            '  newline at the end of each group of 10 numbers

The funny characters are no longer there.

Pages: 1 2 [3] 4 5 ... 209