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 ... 207
1
Technical support / Re: web page 0.htm DM32 value display
« on: October 08, 2019, 06:34:21 AM »
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.

2
Technical support / Re: Programming to PLC
« on: September 30, 2019, 03:21:01 AM »
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.

4
Technical support / Re: Max frequencies on regulare input
« on: September 26, 2019, 11: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.

5
General Discussions / Re: Double debounce design
« on: September 20, 2019, 03:21:27 AM »
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.

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

7
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.


8
Technical support / Re:Jog Moves with Step / Dir
« on: March 12, 2019, 04:55:22 PM »
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.


9
Technical support / Re:NETCMD$
« on: March 02, 2019, 09: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 xxx.xxx.xxx.xxx:9080>.

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.

10
Technical support / Re:Reading Mechanical Encoder
« on: March 01, 2019, 04:26:35 PM »
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.

11
Technical support / Re:Perplexed by puzzling parentheses pecualiarity
« on: February 21, 2019, 08: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.

12
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
   next
   print #2            '  newline at the end of each group of 10 numbers
next

The funny characters are no longer there.

13
Thank you for your feedback. Is there a specific forum thread that is showing the funny character that you mentioned? Did you try with a different browser and do all of them show the same funny characters?

We have not made any changes to the underlying PHP code for the forum. In fact we didn't upgrade the PHP because of the concern that it may break the code. But the browsers might have moved on and beginning to "not like" the code executed by the old PHP codes? We are not too sure.

14
Technical support / Re:PLC hanging
« on: January 08, 2019, 05:52:23 PM »
It may be caused by an actual undefined interrupt that was triggered when the STEPSTOP command was executed. STEPSTOP disables interrupt channel and if this was done in a untimely manner it could result in the CPU chip throwing an undefined interrupt exception because of some internal register conflicts. It doesn't happen most of the time but it is one of those time when "all stars aligned" that the undefined interrupt exception was triggered.

The earlier firmware versions (r76 was released in 2010) did not build in enough software mechanism to protect against the undefined interrupt that could result from untimely disabling of interrupt. We believe the subsequent firmware has mostly fixed such issues.

You can either upgrade the firmware (r76 it is not field upgradable so it will need to be sent back for factory upgrade) or you can define an interrupt custom function using INTRDEF 100, n, 1   where n is the custom function number that is used to trap the Undefined Interrupt. Within this error trap custom function you can save the data you need and then issue a REBOOT command to restart the CPU and recover from the undefined interrupt so that the controller will not stop operating.

15
Technical support / Re:Watch dog timer.
« on: December 12, 2018, 04:03:53 AM »
Thanks for the valuable input and we certainly would consider experimenting with your suggestions to see if we could incorporate them into future firmware releases. The FxCPU firmware is pretty stable already and we haven't made any major changes in the past 2-3 years. We shall weigh the merit of the suggested changes (how often they will be used) against the additional coding costs (memory space, developing and testing the additional code and mostly making sure that the additional code will not introduce new problems to the existing system).  We will keep you posted.

Pages: [1] 2 3 ... 207