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 ... 209
General Discussions / Re: comparing value of two DM
« on: April 23, 2021, 08:12:43 AM »
You should post this question at the Tech Support board.

It is simple IF THEN ELSE statement

#DEFINELOCAL  targetCount = 1000

IF DM[1] < (targetCount + 4) AND DM[1] >= (targetCount - 4) THEN

Technical support / Re: Handling more than 1000 #Define entries
« on: March 30, 2021, 08:16:23 PM »
We should have no problem expanding the #Define table to 2000 entries. If you require the version urgently please contact and we could arrange to send you a pre-release version of new i-TRiLOGI 7 that can support 2000 entries in the #Define table along with many other new features.

Technical support / Re: Headless CO5 Uploads
« on: March 30, 2021, 08:08:25 PM »
What version of CO5uploader do you have? Since version 2.3 that had been launched in 2016, the CO5uploader can be operated from the command line. Please see the command line user guide:

Hopefully this works for you.

In the next product that will be launched later this year the PLC will be able to download a CO5 file from a webserver to upgrade its own software with auto rollback in case of unsuccessful upgrade.

If you like some preliminary information about the new product please contact for more details.

Technical support / Re: Handling more than 1000 #Define entries
« on: March 30, 2021, 08:22:50 AM »
Hi Gary,

Thank you for the feedback and suggestions. We will consider what you have suggested while avoid confusing user of the difference between the EEPROM memory and the DM memory. Although in our PLCs that use FRAM such as any SmartTILE-Fx based PLC, the reading and writing to  EEP are almost as fast as DM. In some other models that use real EEPROM the performance of reading and writing to EEPROM are very different from that to the DM so we want user to be well aware of the differences and not use them interchangeably. We will see what is the best way to achieve what you have suggested.

Technical support / Re: Handling more than 1000 #Define entries
« on: March 10, 2021, 11:06:26 PM »
Hi Nathanael and Gary

Thank you for the robust discussion about getting around the 1000 table entries limit on i-TRiLOGI. You are right that the 1000 number is what we think should be more than enough for most TBASIC program and we didn't want the table to become so large that it is hard to locate a defined item.

We can consider expanding the number of allowable table entries in the upcoming release of new i-TRiLOGI version 6.7 and 7.4 with a number of user interface improvement.   How many more entries would you need in the #Define table?

What PLC model are you using?

Technical support / Re: undefined interrupt F1616
« on: March 02, 2021, 07:53:17 PM »
r71 firmware means that this F1616 PLC is likely about 13 years old and is one of the original F-series PLC. We are glad it is still operational.

However, note that the F1616-BA was EOL quite sometime ago and it was replaced by Fx1616-BA which is a drop in replacement but support more memory as well as floating point operation. The firmware of the original F1616-BA may not upgradable due to some hardware changes to the CPU board. However, it is possible to change out the CPU board of the F1616 to the new CPU board for Fx1616 and that will convert it into a Fx1616-BA. Please contact to inquire for the option.

The two Nano-10 with r75 firmware are about 11 years old. There is some enhancement in subsequent hardware revision as well. If you are not using FRAM-RTC then the changes would not affect you and they are upgradable without issue even if the hardware is the oldest version. But if you are using FRAM-RTC then upgrading the firmware may affect its operation due to the hardware change. It is best to contact to discuss if your board's hardware will be affected.

Technical support / Re: Flashing Pause LED on Nano-10
« on: September 06, 2020, 07:47:40 PM »
If DIP switch #4 is ON then the PAUSE LED should stay ON and should not be flashing. If PAUSE LED keeps flashing then it looks like the PLC is being rebooted consecutively and could be a problem with the power supply.

What type of power supply? How many volts and how much current can it supply.

Try changing the power supply if you have a different power supply unit.

Technical support / Re: I2C outputs on Nano-10
« on: September 03, 2020, 12:37:12 PM »
You are right that I2C bus is usually meant for short distance (typically on board or on an adjacent board due to the fact that it only has active low output while high level output depends on pull up resistors. It should work over 20 to 30cm away but make sure that there is no noisy signal that can be coupled onto the I2C signal path.

The I2C-FRTC module that are sold with our FMD and Nano-10 PLCs however employs an I2C buffer chip which allows it to interface to other I2C buffer chip using higher voltage (up to 15VDC) and load capacitance of 4000pF. That can help to extend the I2C range to longer range (more than 10m) provided you design everything correctly, using higher I2c voltage level and lower value pull up resistors.

If the remote module is far away it is better to use RS485 or Ethernet to communicate with a remote I/O board that support common communication protocol. For example another FMD88-10 can be connected up to 1000meters away via RS485, or on the other side of the planet if communicate via the Internet.

Technical support / Re: Integer Stack Overflow
« on: August 20, 2020, 10:06:54 AM »
For efficiency reason, the integer math operands are pushed and popped from a separate 32-bit integer stack (since all integer math are 32-bit) rather than on the byte-oriented PLC program execution stack. A separate stack pointer is used to keep track of the int32 stack. The integer stack size is 16 which is very unlikely to be exceeded in regular (non-recursive) expression.

Is your integer stack overflow issue repeatable?  Is this part of the routine occurring in an interrupt service routine?

As for the runtime error it is not retrievable via Modbus.  If you trap the runtime error using the runtime exception handler as mentioned by Gary, you can either reboot the PLC or you can turn on a relay flag to indicate a runtime error and your Modbus host can monitor it via Modbus mapped relay bit.  The PLC thereafter may enter an endless loop  using statements such as   WHILE 1 : ENDWHILE  and wait for user to reboot it.

The LCD readout is actually accessible via a hostlink command but is not accessible via Modbus. Since the PLC is supposed to PAUSE after a runtime error to let user review what went wrong, only iTRiLOGI is provided with the information so that it can feedback to the programmer. 

In the next generation of PLC that we are working on we certainly are going to add a lot of useful suggestions to the PLC. In fact a user and system log utility that is available in the next PLC and i-TRiLOGI will be a very very useful feature for programmers.  Stay tune - it is going to be exciting.

Technical support / Re: I2C outputs on Nano-10
« on: August 13, 2020, 07:04:29 AM »
The I2C port is normally disabled without the I2C-FRTC module. When you install the I2C-FRTC module you will be able to use the I2C commands to interface to other I2C devices.

Technical support / Re: RS485 sometimes not working well
« on: June 08, 2020, 02:18:40 PM »
What are the other controllers? Are they third party controller?

Do you know if the actual baud rate of those controllers?  Most controllers that advertise 115200 don't actually communicate at that precise baud rate but a close approximation (up to +/-3% of the target baud rate). So is the Fx PLC.  The closest baud rate that Fx PLC support is  117200 which allows it to communicate well with a PC at precisely 115200 bps. But if the other controllers actual baud rate is lower than 115200 then it is likely that the actual baud rate difference is larger than +/-3 %, which can lead to more errors.

Try to communicate at a lower baud rate if the highest baud rate don't work well.

Technical support / Re: RS485 Baud Rate Between Nano-10 and Fx1616-BA
« on: June 04, 2020, 02:59:34 PM »
As explained in the previous post the Fx PLC and the Nano-10 are clocked at different CPU speed so the actual baud rate is the closest possible baud rate that could be derived from the CPU clock.

On further test we found the closest actual baud rates of the two PLCs to the "target" baud rate are:

target: 115200 bps  (PC serial port baud rate).
Nano10: 111607 bps
Fx PLC: 117188 bps

As you can see their actual baud rates are on two different sides of the target baud rate. On their own each is within the +/- 3% allowable variation from the target baud rate.  Unfortunately the difference between them are larger than the +/- 3% allowable range for successful communication at these higher baud rates.

These are hardware limitation and could not be resolved in firmware.

Anyway, the reason our PLCs support 115200 and 230400 is because these are the baud rates that are supported on standard PC serial port (a PC uses dedicated crystal to generate the full range of baud rate).  So the main purpose is to allow these PLCs to communicate with PCs at higher baud rate if necessary.  But these two PLCs unfortunately are not compatible with each other at these higher baud rates.


Technical support / Re: RS485 Baud Rate Between Nano-10 and Fx1616-BA
« on: June 04, 2020, 01:57:41 PM »
Thank you for your report.

Please note that serial port at 230400 bps has a bit time of 4.36us.   Serial port baud rate are usually derived from CPU clock after feeding through some prescaler and divisor and hence the bit rate is often just an approximation. Since not all devices run at the same CPU clock rate the actual serial port speed would vary slightly from one family of device to another.  Asynchronous serial communication such as UART requires both devices to be within +/- 3% of the agreed BAUD rate. i.e a deviation of  just +/-0.14us in bit period would fail the communication at that speed.

We conducted some tests by setting a Fx PLC and a Nano-10 PLC  RS485 port to 230400 bps.

Individually, both the Fx and the Nano10 PLCs are able to communicate with a PC at 230400 bps without any issue in short wire range. We used an internal version of i-TRiLOGI that we can set to 230400 bps and we can sustain online monitoring with each PLC separately.

However, when we setup the Fx PLC to send hostlink command to the Nano-10 PLC at 230400bps, the Nano-10 does not appear to accept the command as per your experience at 230400.

We then setup two Fx PLCs and we are able to use one Fx PLC as master to send hostlink command to the second Fx PLC as slave and the master Fx PLC is able to sustain good communication with the slave Fx PLC.

We believe that these two different family of our PLCs may be incompatible at highest baud rate such as 230400 or even 115200. This is because the Fx PLC and the Nano-10 CPU are clocked at different speed (Fx PLCs are faster) and the timing variation between them could be large enough to cause problem.

If you wish for higher communication speed you could try with Ethernet communication. The master Fx PLC is able to connect to each Nano-10 as slave one at a time. It is likely to be faster than serial port.

Technical support / Re: FMD88-10 and UL 61131-2 and UL 60730-2-9
« on: April 15, 2020, 12:32:12 PM »
The FMD88-10 is designed and built to comply to applicable sections in the IEC61131-2 standard. As per the IEC61131-2 standard, our PLCs are designed to safely operate within the specified operating temperature, voltage and current ranges and they are built to withstand momentarily over voltage, over current, reverse polarity and environmental contamination up to pollution degree 2 with no safety issues. Various tests are conducted during design and manufacturing to ensure the PLCs operate properly within their stated specifications. However, at the moment the FMD88-10 PLC is not yet externally certified as a UL-listed component. But that  would not prevent its use in most of the UL listed OEM equipment. We have many OEM users who have incorporated the FMD/Fx series PLC in their UL-listed or even FAA certified equipment. The actual technical requirement of the PLC would be dependent on the particular UL standard applicable to the industry in which the OEM equipment is built to operate. You can inquire with your UL rep for any specific technical requirement that the PLC must meet in order to satisfy the applicable UL standard and we would be able to advise you if the FMD88-10 is suitable for the application.

Technical support / Re: Custom function
« on: April 13, 2020, 10:01:37 AM »
This email reply to you was provided to support for this thread:

The best way is to use the STEPMOVEABS and STEPCOUNTABS commands to change and measure position around a fixed point. What you would do is move your motor to a position you would like to call zero and run the STEPHOME command.

From there you can move forward or backward using STEPMOVEABS and return the count from your zero position using STEPCOUNTABS. If you want to define a "home" position as 1000, then you can use define variables to create constant or variable values with names relevant to you (anything allowed by the define table naming conventions), and then use these as parameters for the STEPMOVEABS command.


It will be even more accurate if you can provide position feedback from your stepper driver to the PLC HSC inputs. STEPCOUNTABS will account for the pulses sent out of the PLC outputs, but it can't know about the actual physical movement, which requires encoder feedback from the driver itself.

The only problem is when the PLC loses power and you don't know for sure what the position of the stepper motor is when it powers up. You can always store position and home values in permanent memory, but the motor could have physically moved after power is lost and the PLC obviously can't detect that, so your power up position will be different than expected (the same problem will exist with any additional stephome command to support your request.

To resolve the issue of position loss when the PLC is powered down, you can add limit switches to zero the motor on power up and then use my solution to create fixed or dynamic home positions.

Here is a description of the STEPMOVEABS command, which you can also view online:

STEPMOVEABS ch, position, r 


This new command allows you to move the stepper motor # ch to an absolute position indicated by the position parameter. At the end of the move the relay #r will be turned ON. position can be between -231 to +231 .(i.e. about ± 2 x 109) steps. The absolute position is calculated with respect to the last move from the "HOME" position. (The HOME position is set when the STEPHOME command is executed). The speed and acceleration profile are determined by the STEPSPEED command as in the original command set.

This command automatically computes the number of pulses and direction required to move the stepper motor to the new position with respect to the current location. The current location can be determined at any time by the STEPCOUNTABS( ) function.

Once STEPMOVEABS command is executed, re-execution of this command or the STEPMOVE command will have no effect until the entire motion is completed or aborted by the STEPSTOP command.

See Also



Pages: [1] 2 3 ... 209