EZwire1616 User Manual

PLC
EZwire1616 User Manual

Share on Social Networks

Share Link

Use permanent link to share in social media

Share with a friend

Please login to send this document by email!

Embed in your website

Select page to start with

202. Chapter 18 Extended File System 18-14 Next, open up Windows Firewall and add to the Except ion list the port 21 (command port) and ports 41000 to 41001 (or whatever range limit you have set to in the FileZilla Setup screen). This should allow the FTP Server to receive connection from these por ts that the PLC will be using to make the command and data connections.

35. Chapter 2 Ethernet Port 2-7 The standalone version can be useful for OEM designers w ho want to provide their customers with a way to configure the Ethernet settings, and/or calibrate the ADC, and RTC settings but don’t want to provide access to the programming software.

13. Chapter 1 Installation Guide Chapter 1 Installation Guide For EZWire1616 PLC

18. Chapter 1 Installation Guide 1-5 Figure 1.4: Terminal Wiring Step 2 Figure 1.4: Terminal Wiring Step 3

102. Chapter 8 Frequency / Speed Measurement Chapter 8 Frequency / Speed Measurement

118. Chapter 11 Pulse Width Modulated Outputs Chapter 11 Pulse Width Modulated Outputs

124. Chapter 12 Real Time Clock Chapter 12 Real Time Clock

128. Chapter 12 Real Time Clock 12-4 12.9 Troubleshooting the RTC If the RTC Error light comes on and the battery is pr operly installed, then the RTC could be corrupted or damaged. This could happen if there was any damage to the components on the board, such as I/O drivers, communications drivers, or any of the IC’s or PCB circuitry. Al so, if a voltage spike came into the PLC through its I/O, power supply, or communications ports, that could cause some corruption even if there was no component damage. If the RTC is only corrupted, then you should only have to reset the RTC to resolve the problem. This can be done most easily by using the TRiLOGI method of se tting the RTC that was described in section 12.4. After setting the RTC, the PLC should be powered off and then powered on again. The RTC Error light should be off at this point, but if it isn’t, then there is a possibility of damage to the PLC. At this point you should contact Triangle Research tech support or if you have purchased the unit from a local distributor, then you should contact the di stributor for assistance.

63. Chapter 2 Ethernet Port 2-35 Figure 2.10.3 If FileZilla has made a successful connection, the status should be: “Connected”, and “Directory listing successful”. Also, you should be able to see the preloaded files in the remote site directory, which is the bottom right window. If you are not able to connect to the PLC’s web server or if you can’t get a successful directory listing, then you should first double check the settings you have configured for FileZilla compared to the settings configured in the F-Server. The next thing to check is your Windows firewall, which must allow the PLC to make a connection back to the PC (due to the use of ac tive transfer settings). You can disable the firewall temporarily to check if it is affecting your FileZ illa connection. If you have conf irmed that disabling the firewall allows you to successfully connect to the PL C server and view the dire ctory listing, then you can add the PLC’s IP address as well as FileZilla program to the firewall exception lis t so that you can leave your firewall enabled if you wish. To add FileZilla to the Windows firewall excepti on list, you will need to open the Windows firewall from your network settings configuration area. Then you will need to click on “Change settings”, which will open up a new window. You will need to go to the “Exc eptions” tab in the new window and look for FileZilla in the list of programs. If you see FileZilla in the list, then you will need to check the box beside it to add it to the exception list. Otherwise, you will need to manually add it to the list by clicking “Add program” and searching for FileZilla in its installation directory. Here is a picture of the Windows Firewall status window and the Change settings wi ndow with the Exceptions tab:

68. Chapter 2 Ethernet Port 2-40 Refer to the user guide linked above for more info rmation on the available user modifications.

158. Chapter 15 Host Link Communication Protocol 15-10 broken wire at the terminal of one node may mean t hat all the PLCs connected after this node become inaccessible by the master. If the RS485 interface of one of the PLCs has short-circuited because of component failure, then the entire network goes down with it too. This is because no other node is able to assert proper signals on the two wires that are also common to the shorted device. Hence, when trouble-shooting a faulty RS485 network, it may be necessary to isolate all the PLCs from the network. Thereafter, reconnect one PLC at a time to the network, starting from the node nearest to the host computer. Use the TRiLOGI program to che ck communication with each PLC until the faulty unit has been identified.

1. EZWire1616 With floating point support Ladder+BASIC Super PLC Revision 0 USER’S MANUAL

17. Chapter 1 Installation Guide 1-4 Figure 1.2: Terminal Wiring Details Wiring the I/O is highly simplified with the quick- connect spring-cage terminals from Phoenix Contact. There are no time consuming screws to handle. T he wiring technician simply needs to perform the following steps: 1. Insert a flathead screwdriver (1/8" wide by 1/2" long tip) into the spring-cage release hole with some pressure 2. Tilt the screwdriver up to act as a lever, wh ich will open the associated terminal and allow for the wire to be inserted. 3. Insert the wire in the open terminal. 4. Once the wire is in place, the screwdriver can be lowered and removed from the actuation hole. The wire is now securely held in place with an exce llent electrical contact. Each of these steps are illustrated below. Figure 1.3: Terminal Wiring Step 1

105. Chapter 8 Frequency / Speed Measurement 8-3 8.3 Frequency Measurement on High Speed Counter Inputs For applications that require frequency m easurement and pulse counting of the same signal, you only need to feed the pulse input into any pair of the i nputs #1 & 2, or inputs #3 & 4, or inputs #5 & 6 and define it as a High Speed Counter (see Chapter 7). Th is is because an input pin that has been defined as an HSC will automatically be enabled for pulse measurement. In other words, if you need to use the HSC and t he Pulse Measurement on the same channel, then you don’t need to execute both the HSCDEF and PMON, you only need to execute the HSCDEF. The HSCDEF function will automatically st art the Pulse Measurement hardware so it is not necessary to use the PMON function. However, if you use only the PM ON function, it would not enable the HSC function. However, if you execute the HS CDEF function and then execute the PMON function, the HSC will be disabled, even though it was previously enabled.

106. Chapter 9 Interrupts Chapter 9 Interrupts

109. Chapter 10 Stepper Motor Control Chapter 10 Stepper Motor Control

28. Chapter 2 Ethernet Port Chapter 2 Ethernet Port

129. Chapter 13 LCD Display Programming Chapter 13 LCD Display Programming

207. Chapter 18 Extended File System 18-19

62. Chapter 2 Ethernet Port 2-34 Figure 2.10.1 Under the default “General” tab, you will need to enter the Host IP address and configure the “Logontype”. The Host should be the IP address of the EZWire1616 (default IP is shown in the example). The Port can be left blank and the Servertype can be left as the default as shown. The Logon type should be set to Normal and the User and Password should be set to the same as for the login to the F- server. Nothing else needs to be configured in this area. Next go to the “Transfer settings” tab. Figure 2.10.2 Under the “Transfer settings” tab you need to set the Transfer mode to “Active” and check the box to Limit number of simultaneous connections. The maximum number of connections should be 1. This is everything that needs to be configured, so you can now click on connect.

69. Chapter 3 I/O and Internal Relays Programming Chapter 3 I/O and Internal Relays Programming

132. Chapter 14 Serial Communications Chapter 14 Serial Communications

206. Chapter 18 Extended File System 18-18 18.9 Setting Up A FTP Server Behind a Windows Firewall. Please refer to the following Microsoft document descr ibing issues and solutions related to FTP server behind the Windows Firewall. http://technet.microsoft.com/en- us/library/dd421710(WS.10).aspx Microsoft focuses mainly on the FTP server in their IIS server (for obvious reasons) instead of Filezilla. If you are setting Filezilla as a permanent FTP server behind a software firewall you can try to make the following configuration setup: 1) You must specifically setup a range of port num ber for Passive mode use. These are the port number that Filezilla will assign to the PLC to make a data channel connection when it attempts to transfer a file using passive mode. The following is an example w here two port numbers are assigned so that two PLCs may connect to the Filezilla simultaneously. You can add a larger port range if more PLCs may connect to the FTP Server simultaneously. Next, open up Windows Firewall and add to the Except ion list the port 21 (command port) and ports 41000 to 41001 (or whatever range limit you have set to in the FileZilla Setup screen). This should allow the FTP Server to receive connection from these por ts that the PLC will be using to make the command and data connections.

40. Chapter 2 Ethernet Port 2-12 Figure 2.8.4 By default your Ethernet settings will be configured to be obtained automatically (in this case only the IP settings are set to be obtained automatically). This setting will not work since the F-series PLC does not have the ability to assign IP address to the PC’s Ethernet port. So you need to manually set the IP address and the Subnet mask. The IP address should be on the same subnet as the IP address you have set for your PLC. For example, if your PLCs IP address is set to the default address of “192.168.1.5”, then you should set your PCs IP address to be: 192.168.1.xxx The xxx can be any number between 1 and 255, except for 5 (your PC can’t have same IP address as your PLC) The Subnet mask should be set to “255.255.255.0” no matter what and the other settings should be left blank because you won’t be connecting this Ethernet port to the Internet. 5. Sample Configuration Figure 2.8.5 Here is an example of a configuration that will work if your PLC has an IP address of 192.168.1.xxx, where xxx is anything from 1- 255 except 2. Once you have set the IP address and Subnet mask, you can click on OK and then click on OK again to close the “Local Area Connection Properties” window shown in Figure 2.8.5 Note: When using direct Ethernet connection you should leave the “D efault gateway” field empty. This can prevent the PC from trying to access the Internet through its Ethernet port which can cause the PC to lose internet connection. Now your Ethernet port has been configured and you c an try to connect to your PLC from I-TRiLOGI using your PLCs IP address and port number.

74. Chapter 4 Timers, Counters & Sequencers Chapter 4 Timers, Counters & Sequencers

148. Chapter 15 Host Link Communication Protocol Chapter 15 Host Link Communication Protocol

159. Chapter 16 Host Link Command/Response Format Chapter 16 Host Link Protocol Format

208. Chapter 21 Using PLC As a Modbus/TCP Gateway Chapter 19 PLC As A Modbus/TCP Gateway

14. Chapter 1 Installation Guide 1-1 1 INSTALLATION GUIDE FOR EZWIRE1616 PLC Figure 1.1 1.1 Overview The EZWire1616 PLC is a new generation of PLC based on the F-series PLC and designed to easily wire into a control panel or machine. It features high end 3-level quick-connect spring-cage I/O terminals from Phoenix Contact. Each I/O point has a rail voltage (+ 5V DC for Analog Input and +24V DC for Digital I/O and Analog Output) on the middle level, a common (0V) voltage on the bottom level, and a signal terminal on the top level. EZWire1616 uses the same SmartTILE-Fx CPU board as the Fx PLCs, hence it supports all the floating- point TBASIC commands available in I-TRiLOGI ve rsion 7 (TL7), just like the Fx2424 and Fx1616-BA. All of the same I/O special functions are supported, which means in many cases the Fx2424 users can simply transfer their “.PC6” or ".PC 7" file to the EZWire1616 unmodified. For existing users of F2424 who have not used the updated Fx2424 and are switching to EZWire1616, the following summarizes the main difference between the two PLC models:

37. Chapter 2 Ethernet Port 2-9 If you are on a corporate network, then you will need to consult the IT administrator to get the PLC connected to the network. 2.2.2 Setting up Ethernet Co mmunication Directly Between a PC and a F-series PLC It is possible for your PC to communicate directly with a F-series PLC through the Ethernet port. This means that you can have a peer-to-peer connection bet ween the F-series PLC and your PC without an Internet connection or any additional network equipment. The PC being used would need a spare Ethernet port in order to do this. What You Will Need 1. A PC with a spare Et hernet port (RJ45 connection) 2. An Ethernet cable** 3. A F-series PLC **There are two types of Ethernet cables: A standard straight through cable, which is used in most situations, and a crossover cable, which is required w hen there is no auto-switching hardware in either of the two Ethernet ports (PC and PLC). The F-series PLC does NOT have auto-switching capabilities so it

53. Chapter 2 Ethernet Port 2-25 protocol is itself inherently insecu re and not meant to be exposed directly to the Internet where malicious attacker can take control of the equipment. Typically Modbus TCP devices are deployed in a lo cal area network and protected by the network firewall. A SCADA or OPC server program is us ed to connect to the Modbus/TCP devices on LAN and the PC running the SCADA/OPC server software c an then be the only device exposed to the Internet where secured access can be implement ed by the server software. Exter nal HMI client software can then make connection to the SCADA/OPC server which will in turn access the Modbus/TCP devices such as the F-series PLCs. However, if you only have a single Modbus/TCP devic e and need to expose it to the public Internet for external access, then you ought to consider the security issues associ ated with MODBUS/TCP connections. Since a MODBUS/TCP connection does not require a username/password login sequence (unlike the FServer login), the only way to protect against unaut horized access is through the “Trusted IP” addresses defined using the F-series Ether net Configuration software. To define a list of “Trusted IP” addresses, please click on TL7’s “Controller” menu and select “Ethernet & ADC Configuration”. Next, click on the “Advanced” button on the “FServ er Basic Configuration” and you should see the following Advanced Configuration screen. Figure 2.4.1 The first thing you should do is to click on the “Retrieve Parameters from PLC” so that you can capt ure a copy of the current configuration in the PLC and you can then modify selectively. You can define a list of up to 6 “Trusted IP” addresses in this panel. To enable the Modbus/TCP Trusted IP, click on the “Yes” button next to the “Modbus/TCP Use Trusted IP”. Note: The FServer can also be enabled to only allow connections from devices that match one of the “Trusted IP” defined in this panel. This is on top of the username/password login sequence that can be enabled/disabled from the Basic Configuration screen. In other words, you can choose either security method to access the FServer or implement both security methods at the same time. After you have defined the list of trusted IP addresses and checked the “Use Trusted IP” radio button, click on the “Save Parameters to FServer” to save your data to the PLC’s non-volatile memory.

79. Chapter 4 Timers, Counters & Sequencers 4-5 4.4 Programming Sequencers on Ladder Logic 4.4.1 Introduction TRiLOGI Version 6 & 7 support eight sequencers of 32 steps each. Each sequencer uses one of the first eight counters (Counter #1 to Counter #8) as its step c ounter. Any one or all of the first eight counters can be used as sequencers "Seq1" to "Seq8". To use a sequencer, first define the sequencer name in the Counter table by pressing the <F2> key and scroll to the Counter Table. Any counter to be us ed as sequencer can only assume label names "Seq1" to "Seq8" corresponding to the counter numbers. For e. g. if Sequencer #5 is to be used, Counter #5 must be defined as "Seq5". Next, enter the last step number for the program sequence in the "Value" column of the table. A circuit that uses the special function "Advanc e Sequencer" [AVSeq] will need to be constructed. The first time the execution condition for the [AVs eq] function goes from OFF to ON, the designated sequencer will go from inactive to step 1. Subs equent changes of the sequencer's execution condition from OFF to ON will advance (increment) the sequencer by one step. This operation is actually identical to the [UPctr] instruction. The upper limit of the step counter is determined by the "Set Value" ( SV) defined in the Counter table. When the SV is reached, the next advanc ement of sequencer will cause it to overflow to step 0. At this time, the sequencer's contact will tu rn ON until the next increment of the sequencer. This contact can be used to indicate that a program has comple ted one cycle and is ready for a new cycle. Accessing individual steps of the sequencer is ex tremely simple when programming with TRiLOGI. Simply create a "contact" (NC or NO) in ladder edi t mode. When the I/O window pops up for you to pick a label, scroll to the "Special Bits" table as follow: The "Special Bits" table is located after the "Counter s" table and before the "Input s" table. Click on the "SeqN:x" item to insert a sequencer bit. You will be prompted to select a sequencer from a pop-up menu. Choose the desired sequencer (1 to 8) and another dial og box will open up for you to enter the specific step number for this sequencer. Each step of the sequencer can be programmed as a contact on the ladder diagram as "SeqN:X" where N = Sequencers # 1 to 8 and X = Steps # 0 - 31. e.g. Seq2:4 = Step #4 of Sequencer 2. Seq5:25 = Step #25 of Sequencer 5.

184. Chapter 17 Light Dimmer Control Chapter 18 Light Dimmer Control

44. Chapter 2 Ethernet Port 2-16 Figure 2.2.1 When the “Login To TLServer” screen pops up, enter the “IP address : port”, the username and the password that you have defined for t he FServer earlier using the confi guration software, and click on the “Detect ID” button to detect the PLC’s ID. If TRiL OGI is able to connect to the EZWire1616 via the Ethernet network, then the PLC’s ID will appear in the ID box. When you click the “OK” button, the on-line monitoring screen should appear and you should see the “Activities LED” on the RJ45 connector blinking away. You have now successfully connected to t he FServer and you can run all the commands under the “Controller” menu, including transferring your new pr ogram to the PLC or setting the PLC’s Real Time Clock, etc. For more details on using these commands, please refer to i-TRiLOGI Programmer’s Reference. Likewise, to transfer your new program to the PL C, you can click on the “Controller” menu and select “Program Transfer to PLC” or press the <Ctrl-T> ke ys. If TRiLOGI is already connected to the FServer, the program transfer will begin immediately after you’ ve confirmed your action. Otherwise the same “Login to TLServer” screen, as shown on Figure 2. 2.1, will appear for you to complete the login sequence. Note: 1) Unlike the TLServer, which allows unlimit ed connection time, the FServer on the PLC will disconnect the client if there is no activity for more than 10 minutes. The current version of the TRiLOGI program may not detect that the c onnection has been closed and it may instead think that the PLC is not present. When this happens you should click on “Controller” menu and select “Disconnect” to properly shut down the connection that has al ready been reset by the PLC. 2) If you are unable to connect to the PLC, then check that both the PLC and the PC running your TRiLOGI software are connected to the same net work and are on the same subnet. Generally for a subnet mask of 255.255.255.0, if the PC’s IP address is 192.168.1.xxx then the PLC should have an IP address of 192.168.1.yyy and it will not work if the PLC has IP address such as 192.168.0.yyy or 192.168.2.yyy, since this means that the two devices are on different subnets. Likewise, if your PC’s IP address is “192. 168.0.xxx”, then please change your PLC’s IP address to “192.168.0.yyy”. Also ensure that the PLC’s IP address is not already assigned to another device on the same network, otherwise a conflict would occur and communication is not possible. 2.4 Using F-series PLC “Network Services” Commands The EZWire1616 implements a list of “Network Servic es” commands similar to what you may have read in the User’s Manual of the X-Server (“NS commands) and TLServer (“Files and Email Services”).

81. Chapter 4 Timers, Counters & Sequencers 4-7 Figure 4.5 4.5 Programming Sequencers in Custom Function You can change the current step of Sequencer easily from within a Custom Function by changing the present value of their equivalent c ounter. E.g. Sequencer #3 is the same as Counter #3, thus if you wish to assign Sequencer #3 to Step 10, you can achieve it as follows: CTRPV[3] = 10

82. Chapter 5 Analog I/Os Chapter 5 Analog Inputs and Outputs

19. Chapter 1 Installation Guide 1-6 Figure 1.4: Terminal Wiring Step 4 1.2.2 Analog I/O Ports: The 8 channels of analog inputs and 4 separate channel s of analog outputs are av ailable along the top level of the PLC’s 3-level terminal block. The EZWire1616 PLC also supplies a +5V analog reference- voltage output for each analog input point and a +24V supply for each analog output point along the middle level and an analog ground (0V) for each analog I/O point along the bottom level, as shown below: Figure 1.5

39. Chapter 2 Ethernet Port 2-11 Figure 2.8.2 Now you can either right click on the Local Area Connection and select “Properties” or highlight it and click on “Change settings of this connection” from the Network Tasks sidebar, as shown above. When you do this, the following window will open. 3. Edit TCP/IP Properties Figure 2.8.3 Now you want to highlight the Internet Protocol (TCP/IP) item and click on Properties. This will open up a new window that allows you to change the network settings for t he Ethernet port that you selected. The Ethernet hardware you are configuring is shown under “Connect using:” in the current window. 4. Configure IP Address and Gateway

59. Chapter 2 Ethernet Port 2-31 2.8 Accessing The PLC from Internet 2.8.1 Small Local Area Network Using Consumer Grade Network Router When you connect a F-series PLC to your home Ether net router, the PLC would have joined a “private” local area network (LAN). It is accessible, through its private static IP address, by other devices on the same LAN as long as each device is on the same “subnet” (See section 2.1 fo r an explanation of subnet settings). The PLC is also able to access the Inte rnet through the router because the router would translate a private TCP/IP packet sent from the PLC in to a public TCP/IP packet out of the Internet and if there is any return data from the In ternet meant for the PLC, the router would know that and automatically routes the return packet back to the PLC. The rout er performs what is known as “Network Address Translation (NAT)” and such routers are called NAT routers. However, the same FServer and Modbus/TCP servers on the PLC are typically inaccessible from the public Internet. This is because the router has a built-in firewall that does not permit external TCP/IP packets from the public Internet to reach the devices on the private LAN. In other words, the NAT router allows the PLC outgoing access to the Internet but by default does not allow incoming access. Most small NAT routers for home use such as those produced by Linksys, Netgear, D-Link or Belkin do allow you to configure the router to “open” and “forwa rd” a specific port number to a specific device on the private network. For example, if your PLC static IP address is 192.168.1.5 and you wish to open its FServer port (9080) but not its Modbus/TCP port (502) to the public internet, you would configure your router such that it will forward the incoming TCP /IP packet destined for port number 9080 to the device at IP address 192.168.1.5. Once you hav e done that, you will then be able to access the FServer from the Internet using the router’s public IP address (this is typically assigned by the In ternet Service Provider) and the port number 9080. However, the Modbus/TCP port is not accessible from the Internet since this port number is not opened and not mapped by the router. You should read your router’s User’s Manual to find out how to configure the router to perform the “port forwarding” described above since each router model has a different user interface. For example, on the D-Link DI-624 router you configur e the router by clicking on the “A dvanced” tab and selecting “Virtual Server” from the router conf iguration page, as shown below:

92. Chapter 5 Analog I/Os 5-10 Figure 5.9 5.4.1 The Benefits of Current Source Analog Outputs Current source outputs are especially useful for industrial applications because of their high noise immunity, ability to transmit over long distances, and versatility of converting to any voltage range on the control input side at the signal destination. Current signals are much more resilient against noi se when compared to voltage outputs since any noise accumulated on the line would not affect the signal. Th is is because the current will remain constant at the value determined by the PLC DAC. Since many industrial environments have direct and indirect sources of noise nearby, this is very beneficial. It is possible to interface to control devices more than 1000m away as long as the sum of the line drops do not exceed PLC power. This allows you to potentia lly control 4 devices in completely separate, and potentially hazardous, locations that are miles apar t, while the PLC is installed in a protected environment. It is possible to convert a current signal to any of the standard voltage input ranges, such as 0-5V or 0- 10V, at the destination (control dev ice analog input). Only a resistor needs to be added at the destination in order to convert to the desired input voltage. If you are converting 0-20mA to 0-5V, you simply add a 250 Ohm resistor across the signal input and common (0V). If you are converting 0-20mA to 0-10V, you simply add a 500 Ohm resistor across the signal input and common (0V). Here are examples of such conversions:

93. Chapter 5 Analog I/Os 5-11 Figure 5.10 5.4.2 Programming The Analog Output You can use the TBASIC command SETDAC n,x to set D/A #n to a 12-bit value x. (x = 0 to 4095). You only need to execute the SETDAC statement onc e and the D/A output will be set to a current proportional to the given set value. E.g. SETDAC 1, 1000 The D/A #1 will output 1000/4096 * 20mA = 4.88mA

97. Chapter 6 Special Digital I/Os Chapter 6 Special Digital I/Os

99. Chapter 7 High Speed Counters Chapter 7 High Speed Counters

203. Chapter 18 Extended File System 18-15 18.8 Uploading File From PLC to FileZilla FTP Server Directory 18.8.1 Overview of The FTP Protocol The FTP protocol requires two socket-connections between the devices performing the file transfer. One connection is the “command” channel where FTP comm ands such as STOR or DELE and the responses are sent as plain ASCII text strings between the FTP client and the FTP server. The second connection is the “data” channel where only the file content or the file directory data are being transferred.

189. Chapter 18 Extended File System Chapter 18 Extended File System

64. Chapter 2 Ethernet Port 2-36 Figure 2.10.4 2.9.3 Transferring and Retrieving Files from the PLC Web Server Now that you have a connection to the PLC’s web serv er and can view the directory listing, you should be able to see any files that have been preloaded into the PLC. Downloading Files The first thing to do is to download the preloaded file s from the web server and store them somewhere on your computer. To do this you will need to open up the fol der on your computer that you want to store the files in. Then you can drag the files from the web server via FileZilla into your destination folder. It is best to make a copy of these files as a backup on your com puter so that you have the original copies available in case you need them. Uploading Files When you are ready to transfer your own web pages or applet to the PLC, you just need to drag it from the folder it is saved to on your computer into the bottom right window of FileZilla where the current files are shown. If you didn’t change the filename, you can tell the new file to overwrite the old file. Otherwise, you will need to manually delete the old file from the PL C’s web server in FileZilla by right clicking on it and selecting Delete.

197. Chapter 18 Extended File System 18-9 9. Click “OK” to complete the setup. The FTP server should now be waiting for connection. 18.5.2 Testing Connection To The FTP Server Using Telnet You can now test the FTP Server using the FileZilla client as mentioned in Chapter 2.9 of the PLC User’s Manual. But a better way to test is to use the “Telnet” pr ogram on your PC (if you are running Windows Vista or Windows 7 you may need to enable the Telnet program since it is disabled by default – do a quick Google search on how to enable the Telnet client software on your PC). Also you may want to find out the IP address of your PC that is running the FileZilla Server. If you have TLServer running on your PC your IP address is r eported on the TLServer’s front panel. You can also get the IP address from the Windows “Network Connec tion Status” as shown below. Our test PC has an IP address = 192.168.1.168 which will be used in the follo wing tests as well as used in the PLC program to connect to the FTP Server.

25. Chapter 1 Installation Guide 1-12 1.7.2 Non Volatile FRAM Memory The EZWire1616 PLC employs 6K words of a high-te ch memory product called “Ferromagnetic RAM” (FRAM). FRAM is non-volatile memory that has no prac tical limit on how often it can be overwritten. In fact, since they are really RAM memory in nature, there is no “erase” and “program” time penalty and you can read and write to them at full speed. Also, accessing the FRAM frequent ly would not have any adverse effect on serial communications, which was sometimes the case with previous (M-series) technology. Since the FRAM are in fact a replacement of t he legacy EEPROM data memory, you can use the same TBASIC commands (LOAD_EEP( ), LOAD_EEP$, SAVE_EEP, and SAVE_EEP$) in TRiLOGI version 6 or 7 to read and write to the FRAM memory. 1.7.3 Volatile Data Memory All the TBASIC variables used in the EZWire1616 PLC: A to Z, A# to Z#, FP[1] to FP[1000], DM[1] to DM[4000] and string A$ to Z$, EMINT[1] to EMINT[16] and EMLINT[1] to EMLINT[16] are in the category of “volatile data memory” - meaning when you turn off power to the PLC the memory content will be lost and they will be reset to zero when the PLC is powered up again. However, the memory array DM[1] to DM[4000] as we ll as FP[1] to FP[1000] can be made non-volatile by turning on DIP switch #1. This is because internally, DM[1] to DM[4000] as well as FP[1] to FP[1000] are actually implemented in FRAM rather than regular RAM (however, they are not part of the 6K words available for use mentioned in Section 1.7.2). You can therefore use these DMs as “safe” memory locations whose content will be preserv ed in the case of a power failure. Of course you can also use the SAVE_EEP and LOAD_EEP to achieve the same result as using DM[1] to DM[4000]. It may be just a little more “natural” to use DM in your program instead of sprinkling LOAD_EEP and SAVE_EEP commands thr oughout your program code. 1.7.4 Extended Data File Storage EZWire1616 supports extended data file storage for stor ing web pages and some are directly accessible from within the PLC program. For more information please refer to Chapter 20 of this manual.

112. Chapter 10 Stepper Motor Control 10-3 The good news is that since each of the EZWire1616 PL C digital output already has a built-in diode to bypass the inductive kick to its 24V power supply, there is no need for additional diodes to be installed across the coils if the coils draw their current from the PLC’s 24V terminals. Note that if the stepper motor uses a separate power supply from the PLC and if the supply voltage were lower than the PLC’s power supply, then connecting t he output to the stepper motor coil directly would cause the PLC’s output LED to light up, even when t he output driver is off. This is because the PLC’s output LED is internally pulled up to the PLC’s power supply and a lower voltage at the load’s power supply would cause current to flow out of the PL C’s output terminal into the load’s power supply and therefore turning on the output LEDs. Although this s hould not affect the driver’s function it can be misleading to the user as to the PLC’s output stat e. Hence, we recommend connecting a diode in series with each of the PLC’s outputs to block such reverse current flow: 12 3 4 6 5 Stepper V+ (< 24V) PLC's 24V 1 EZWire1616 Built-in diodes external diodes to block reverse current flow NPN output drivers Figure 10.3 – If V+ is lower voltage than PLC’s power supply voltage. 10.3 Stepper Motor Controller If the built-in stepper driver is not suitable for y our application (e.g. if you need micro-stepping or you need to drive a very high power stepper motor), then you can use an external stepper motor driver and use the PLC to send direction and output pulses to the stepper motor driver. When configured as a Stepper-Motor Controller, the PLC would generate the required number of "pulses" and sets the direction signal according to the defi ned acceleration and maximum pulsing rate specified by "STEPSPEED" and “STEPMOVE” commands. The "pulse" and “direction” outputs are not meant to be connected directly to the stepper motor. Instead, you will need a stepper motor "driver", which you can buy from the motor vendor. Depending on the power out put, the number of phases of the stepper motor, and whether you need micro-stepping, the driver can va ry in size and cost. Most stepper motor drivers have opto-isolated inputs which accept a directi on signal and stepping-pulse signal from the "Stepper Motor Controller". In this case the EZWire1616 is the "Stepper Motor Controller" which will supply the required pulse and direction-select signals to the driver. Note that the digital outputs #5, #9, and #13 automatically become the direction-select signals for the Stepper controller channels #1, #2, and #3, respective ly, when the stepper controllers are being used.

34. Chapter 2 Ethernet Port 2-6 2.1.13 Advanced Configuration The Advanced Configuration button lets you confi gure other more advanced (beyond the basic Ethernet configuration), but less often used features of the PLC. This incl udes definition of the “Trusted IP” addresses (see Section 2.4.2) as well as calibrations of the PLCs Analog I/Os (see Section 5.5 ). 2.1.14 Standalone Version of Et hernet Configuration Software The standalone version of the Ethernet Configuration software, that wa s previously the only option for configuring the Ethernet port and advanced settings on the F-series, can still be downloaded from our website at the following URL: http://www.tri-plc.com/downl oad/FserverConfig/index.htm Please download and run the “SetupFPLCConfig.exe” file from the above URL to install the “F-series Ethernet Configuration Utility” program. After you have installed the conf iguration program, please click on the Windows “Start” button and open the “F-series PLC Configuration” group and select the “Ethernet Configurat ion Utility” program. The following screen should appear: Figure 2.1.4 The configuration program communicates with the PLC via the RS232 serial port, so your PC should have a RS232 port. Otherwise, you should purchase a USB to RS232 converter. First, click on the “Serial Setup” button and set the PC’s COM port to the same settings as the PLC’s RS232 port. (Default settings are 38,400bps, 8 data bit, 1 stop bit and no parity). It is important that you select a valid COM port on the PC, otherwise the program will crash and exit when it fails to open the COM port. The selected COM port number is shown in a small text box below the “Serial Setup” button so that you can see the currently selected COM port readily. Next, click on the “Retrieve Parameters from F- PLC” so that you can capt ure a copy of the current configuration in the PLC. You can then selectively modify the parameters of interest. The main difference between this standalone version of the F-series Ethernet Configuration software and the built-in version is that it comm unicates directly with the PLC via the serial port, whereas the built-in version requires TLServer or the FServer in or der to create a connection. However, the standalone version can only communicate through the PLCs serial port, whereas the built-in version can connect to the PLC through a serial or Ethernet connection.

55. Chapter 2 Ethernet Port 2-27 read it using the INPUT$(4) function. The STATUS(3) function can also be used to determine if the connection is successful and alive. When the program gets the confirmed c onnection, it can then use any one of the four TBASIC commands: READMO DBUS, WRITEMODBUS, READMB2, WRITEMB2 to read or write data to the remote devices via the virtual comm. port #4, as if a Modbus slave device has been locally connected to a COMM4 port of this PLC. (You do not need to distinguish between Modbus ASCII and RTU in this case, simply use comm. port #4 in your all your commands). Multiple Modbus master commands can be sent as long as the connection is live. You can test the connection stat us by checking the result of the STATUS(3) function at any time. Once all the command exchanges have been completed, you should send a </> tag to close the client connection to t he remote server so that other NS commands can be executed in ot her parts of the program. Example: Please refer to the “fnMBTCP”, “f nRdMBTCP” and “fnWrtMBTCP” custom functions in the demo program: “TestEthernet.PC6”.

58. Chapter 2 Ethernet Port 2-30 Next, please enter the text as shown in the follo wing diagram and then click OK. This will command the Excel spreadsheet to send the web query string “RI00” to the EZWire PLC that is connected to the network with IP address = 192.168.1.5 and port 9080. The query string “RI00” is for reading the status of 8-bit input channel #0 (which covers the logic states of input bit 1 to 8). If the FServer is accessible by the PC from the netwo rk router, it will send t he response data, which will be displayed on the selected spreadsheet cell w here the New Web Query was defined earlier. The response data shown on the cell could be RI 00. The response data includes the command header “RI” as defined in the HostLink Command protocol described in Chapter 15 . The data 00 indicates that none of the inputs 1 to 8 are currently turned ON. Figure 2.6.2 To see how the response data changes in response to the actual PLC’s input, please turn on some of PLC’s digital inputs 1 to 8, then right-click on t he cell where the web query was defined and select te “Refresh Data” command. You should see a new “RIXX” string appear at the selected cell where “XX” is the hexadecimal representation of t he 8 input bits 1-8. E.g. if only inputs 2 and 8 are turned ON, then the binary pattern is 1000 0010 which in hexadecimal fo rm is 82 and the response string would therefore be “RI82”. You can then write an excel formula to extract the data “82” and use it for your other computation purpose. By using a different Host Link command, the Excel spreadsheet can read and write to the PLC’s internal data very easily. Notes: 1. If you have enabled “Use Username/Password” for t he FServer, you will be prompted by your Excel program to enter the Username and password bef ore you can receive the response data. 2. We have provided a more complete Excel spr eadsheet example “ExcelQuery.xls” which can be downloaded from: http://www.tri-plc.com/appnotes /F-series/ExcelQuery.xls The macro in this file converts the RIXX data it receives into ON/OFF i ndicators on the Excel Spreadsheet cells. Note that this spreadsheet file uses the “HEX2DEC” function t hat is not normally available when you first install the Excel program. But you can add it in by insta lling the “Analysis Toolpak”. Please search your Excel Help file for the specific method of adding in this toolpak as it may change from one version of Excel to another. On Excel 2000, you can click on the “Tools->Add Ins”, check the “Analysis Tookpak” check box and then click OK. MS Excel w ill automatically install the toolpak for you.

140. Chapter 14 Serial Communications 14-8 to send a command to a device and it takes a while for the device to be able to send back a response string. The most efficient way of handling such serial co mmunication exchange with other devices is to send a command string using the PRINT #n and then start a timer and let the PLC program continue to scan the ladder program. When timer times out, the timer contact is used to activate a custom function and use INPUT$(n) to read the return message fr om the device. This is most efficient use of the CPU time since the program will not have to wa ste time to wait for response string from the device and that’s the reason for INPUT$(n) to default to non-blocking mode. Another way to deal with this is to use the NETCMD$ function (terminated with “~”). NETCMD$ sends a command string and will return immediately w hen it receives a response string or if more than 0.15s has passed. If the device is slow to res ponse the CPU basically sits in a loop to wait for the response for up to a maximum of 0.15s. NETC MD$ function also re-tries the communication several times if it does not receive a response in the first try. A third way of handling serial exchange with other devices is to use the INPUT$(n) command in blocking mode . Starting from CPU firmware r72 and above, if you run the command SETSYSTEM 19, t This will configure the INPUT$(n) command to block the CPU for up to maximum of (t x 10) milliseconds to wait for a valid string from 3 rd party device. Although this command also wastes CPU cycles to wait for a response and hence it is not as efficient compared to using the timer- activated method mentioned above, it nonetheless is very simple to implement and can be used for non time-critical applications. You only need to execute SETSYSTEM 19, t once and INPUT$(n) will block for the same t x 10 millisecond every time it is executed until SETSYSTEM 19,t is run again. To return the INPUT$(n) to non-blocking mode, run SETSYSTEM 19, 0. d) PRINT #n The PRINT statement transfers its entire argument to a 256 byte serial-out buffer, which is separate from the serial-in buffer. The PRINT statement, ther efore, does not affect t he content of the serial buffer for incoming characters. The operating system handles the actual transfer of each byte of data out of the serial-out buffer in a timely manner. Again each COMM port has its own independent 256- byte serial-out buffer and, hence, the two serial ports can operate totally independently of each other. Note that the PLC automatically enables the RS485 tr ansmit driver when it sends serial characters out of its COMM 2 and 3 ports. When the stop bit of t he last character in the serial-out buffer has been sent out, the operating system immediately di sables the RS485 driver and enables the receiver. This greatly eases the use of the RS485 port sinc e there is no need for a user to bother with the often-critical timing of controlling the RS485 driver/receiver direction. e) OUTCOMM This command sends only a single byte out of the serial COMM port without going through the serial out buffer. For RS485 port, it enables the RS 485 transmitter before sending the character and disables it immediately after the stop bit has been sent out.

196. Chapter 18 Extended File System 18-8 6. Click “Edit –> Users” in order to set up a user name and password for your test. The “ExtendedFileSystem.PC6” program uses a usernam e = “PLC” and password = “1234” so for a quick test you may like to setup the same username and password: 7. At the “General” page of the se tup screen, click “Add” button at the “Users” pane to add a username “PLC”. Since no group has been defined simply leave the default as “<none>” in the second text box as shown in the following diagram. 8. Next click “Shared folders” page and you must set up a folder that is to be used to receive uploaded file. Click “Add” at the “Directories” pane to add the folder. You can choose any folder on your PC to be used for the FTP upload and you just have to remem ber the location so that you can look for the uploaded file later in the test. However, make sure that you check all the check boxes for “Read”, “Write”, “Append” etc as shown in the diagram.

199. Chapter 18 Extended File System 18-11 software firewall setup by anti-virus software during your test. You can always re-enable your software firewall(s) after the test if you wish. PC operating system are designed to run client program normally instead of acting as a server so Window s Firewall by default is to block all incoming connections to the FTP Server. Thus it can give you a lot of headache when you are trying to connect to the FTP server operating behind the Windows Firewall. Notes: a) The main purpose of Windows Firewall is to protect your PC when you are connected to say a public wi-fi network. But if your PC is connected to the Internet via a router at work or at home, the router hardware itself would act as a firewall to isolate your PCs and a software Firewall is actually redundant. (If a hacker tried to connect to a port to your public Internet IP address what he reached would be the port on the router and he would not be able to reach your PC, unless you have specifically se t up to forward all TCP/IP messages sent to that port to a specific PC). b) If you really want to use the Filezilla FTP Server as a permanent server on a PC to receive files, and still want to have the Windows Firewall enabled, you can refer to the last section in this chapter which describes how to do it.

16. Chapter 1 Installation Guide 1-3 All 16 of the digital outputs can each sink up to 4A peak and 1A continuous, 24VDC current from the load and can be used to drive up to 3 small stepper moto rs directly – saving y ou the expense of buying separate stepper motor drivers! In addition, 6 of the digital inputs can be used for decoding and measuring pulses received from up to 3 digital encoders, allowing you to measure position and velocity of a moving object in real time. 10 of the digital inputs can also be defined as interrupt inputs, allowing fast events to be handled in the shortest possible time and to not be constrained by the program scan time. The EZWire1616 is expandable up to a total of 128 di gital inputs and 128 digital outputs using optional expansion modules EXP1616R and EXP2424. It has tw o RS232 ports (one male DB9 and one Female DB9) and one RS485 port; all of them are conversant in MODBUS protocols. Note that there is no built-in LCD port as on the Fx and FMD PLCs. 1.2 Physical Mounting & Wiring The EZWire1616 PLC comprises three PCBs that are st acked together in a very compact form factor. There is a SmartTILE-Fx CPU board that carries the RJ45 Ethernet port socket, the DIP switch, and the status LEDs. There is also a battery compartment that takes one CR1632 primary lithium cell, which powers the battery-backed real time clock to the CPU. The second PCB is the “EZWire1616 carrier board” that carries the power elements, drivers and active components to interface to the SmartTILE-Fx CPU board. The expansion board connector is also located on the carrier board. The SmartTILE-Fx board is plugged into the EZWire1616 carrier board via two 40-pin IDC headers and a one 10-pin IDC header. The third PCB is the “EZWire1616 wiring board” that contains all the I/O interfaces and connectors including the power connector, the RS232 and RS485 termi nals. It also contains the LED indicators for the digital I/O and a power indicator LED so that the user knows power has been transferred from the carrier board to the wiring board. The EZWire1616 carrier board is plugged into the bottom level wiring board via two 10-pin IDC headers and one 40-pin IDC header. IMPORTANT : At no time must the CPU board be unplugged from the carrier board when the PLC is powered ON. Doing so can cause serious damage to eit her or both PCBs and is not covered by warranty. We discourage unplugging the CPU board from the carri er board except for repair purpose as doing so may expose the CPU header pins to high voltages or electrostatic discharge that can damage sensitive components on the CPU board. The assembled EZWire1616 PLC can be easily installed in many kinds of plastic or metal enclosures. You need to use 6 PCB standoffs (or screws and nuts) to support the controller and fasten it to a console box. Alternatively, you can mount it on the optional “DIN-KIT 2” and clip it onto the standard DIN rail. The following subsections show how to wire as we ll as some hardware details of the I/Os that are available on the EZWire1616 PLC model. Separate chapt ers in this manual will be devoted to discussing the programming methods for this hardware. 1.2.1 Wiring Procedure All of the terminals are on a 3-level quick connect, sp ring cage terminal block. They are (from top to bottom level): 1- Signal 2- Supply Voltage (either 5V or 24V) 3- 0V common.

38. Chapter 2 Ethernet Port 2-10 will depend on the PCs Ethernet port whether or not a cro ssover cable is required. If you are not sure if your PC’s Ethernet port is able to perform auto-switching (most moder n PC has auto-switching built-in), then it is best to use a crossover cable. A crossove r Ethernet cable will work in both situations, but a straight through Ethernet cable will only work if one or both of the Ethernet ports can perform auto- switching. How to Set Up Your PC Before you can communicate with the PLC, you w ill need to configure the Ethernet port on your PC to match the settings that you configured in the PLC. For more information on configuring the PLC Ethernet settings, see section 2.1 Configuring The Ethernet Po rt. Once you have configured your PLC’s Ethernet settings, you will need to set your PCs Ethernet port to have a static IP addre ss that is on the same subnet as the IP address you had set for your PLC. How you do this is a bit different depending on your operating system, so the following sections will show step-by-step instructions for configuring your PCs Ethernet settings on Windows XP and then on Windows Vista. Windows XP Ethernet Configuration 1. Open Network Connections . The first thing you will need to do is open the Network Connections window from the “Start” menu by selecting “Show all connections” from the “Connect To” menu, as shown here: Figure 2.8.1 2. Local Area Network Properties . Next the Network Connections window should open, which will display all of your network connections.

60. Chapter 2 Ethernet Port 2-32 On the Linksys WRT54G router, y ou would configure it from the “A pplications & Gaming” menu under the “Port Range Forward” tab, as shown below: 2.8.2 Large Corporate Local Area Network In the case of a medium to large corporate LA N, whether incoming and outgoing TCP/IP packets are allowed to go through the corporate firewall is entirel y decided by the System Administrator according to the company’s security policy. Mo st corporate LANs would not allow incoming packets from reaching an internal server until the System Administrator has given the permission to do so. Some company’s network may not even allow devices such as the PLC to open a connection to the Internet to access external data. If your application requires the PLC to access the Internet or to be accessible from the Internet, then you would need to consult your sy stem administrator on the required procedure.

126. Chapter 12 Real Time Clock 12-2 to activate an alarm of some kind. The following l adder logic circuit is an example of this using the RTC.Err bit as an input that cont rols an output called RTC_Alarm: In the circuit above, RTC.Err is a special bit that cannot be renamed in your program. The output RTC_Alarm is a user-defined output that could be nam ed to anything. If the RTC Error event occurs for any reason, the RTC.Err bit would activate the RTC_Alarm output. 12.4 Setting the RTC Using TRiLOGI Software The RTC date and time can be easily set within TRiLOGI by selecting “Set PLC’s Real Time Clock” from the “Controller” menu. A window will pop up with default values entered as shown below in Figure 12.1. All of these values can be edited and then written to the PLC by clicking on “Set PLC’s Clock” Figure 12.1: Set Real Time Clock 12.5 Setting the RTC Using TBASIC The PLCs RTC can be set from TBASIC using the DA TE[] and TIME[] registers shown in section 12.2. Figure 12.2: Set Date & Time in TBASIC, shown below, is an example of a custom function where the date is set to October 1 st 2008, the day of the week is Wednesday , and the time is 14:30:01 (2:30:01 pm). Figure 12.2: Set Date & Time in TBASIC

127. Chapter 12 Real Time Clock 12-3 12.6 Setting the RTC from Internet Time Server Please refer to Section 2.6 for more detailed inform ation on how your PLC may be able to automatically set its own real time clock using the timeserver data available on the Internet. A sample program is also included in that section. 12.7 Setting up an Alarm Event in TBASIC Since, to the TBASIC program, the RTC data are simp ly integer arrays DATE[1] to DATE[4] and TIME[1] to TIME[3], they are fully accessible at any time by your PLC program. Theref ore, if you want your program to execute a certain routine on a specific date and or/time, you would need to periodically check these variables against the desired settings and activa te the action when the RTC variable(s) reach the set value. Example: Set up a 1 minute clock pulse to monitor the RTC as follows: Figure 12.3: Using Real Time Clock Example 12.8 RTC Calibration The EZWire1616 PLC uses a battery-back real time clo ck that derived its clock fr om a 32.768KHz crystal, which should provide reasonably good accuracy for norma l use. Note that the RTC does not compensate for temperature variation; hence, its accuracy is temperature- dependent. If you require the PLC’s RTC to be very accurate you should keep the PLC under a constant operating temperature. If your EZWire1616 is connected to a LAN, then you al so have the option of hav ing the RTC periodically set itself using the very accurate RTC data that can be obtained from a time-server on the Internet (See Section 12.6).

12. USER MANUAL Page xi 19.4 Fine-Tuning The Modbus/T CP Gatewa y Function ............................................................ 19-2 19.5 Modbus/TCP Gateway Sample Program ............................................................................ 19-3

190. Chapter 18 Extended File System 18-2 18 EXTENDED FILE SYSTEM Before you begin, please download a sample I-TRiLOG I program that will be referred to throughout this manual from our website: http://www.tri-plc.com/trilogi/ExtendedFileSystem.zip 18.1 Introduction All EZWire PLCs support up to 1,740K bytes of file space that can be used for storing up to 435 web page control files! More importantly, an EZWire PLC can open local data f iles in this file space and write/append data to it. The PLC can therefore log a large amount of data into one or more data files, which can be retrieved for analysis anytime. There are two ways to retrieve the stored data files from the PLC: 1. Download the file from the PLC’s built-in w eb server: The file created by the PLC can be downloaded from the PLC’s built-in web server using any web browser. This allows the user to access the data file at any time of the day. 2. Automatic FTP upload from the PLC to an exter nal web-server: You can program the F-series PLC to make a FTP client connection to any web server on the local network or on the Internet/Cloud and upload the data file it has cr eated to the web-server using any filename. Imagine what the EZWire1616 can do with this new uploading capability! The ability to log data locally and automatically upload the data to a web server tr ansforms the PLC into a potent data-logger! The PLC can be programmed to capture daily, weekly or monthly data and then periodically upload the data file to an Internet web server with a unique, time-stamped filename (E.g. “temperaturelog2012-01- 01.xls”). This allows the PLC to log data completely unattended. The data uploaded by the PLC to the external web se rver can therefore be viewed or downloaded into a PC using any web browser, anywhere in the world. This allows you to carry out analysis of past logged data file for performance or diagnostic analysis at any time without having to phy sically access the PLC to retrieve the logged data.

90. Chapter 5 Analog I/Os 5-8 positive voltage (+5 to +30V) and the other pin to 0V, and the signal pin will output a voltage that is directly proportional to the ambient temperature in o F. The output voltage is 10mV per degree F. So at room temperature of 72 degrees F, the devic e will output a voltage of 72 x 0.01 = 0.72V. If you connect this to the PLC’s analog input, you can obtai n the temperature in degree F or degree C using the formula: F = ADC(1)*500/4096 ‘ in degree F OR C = (F – 32)*5/9 ‘ in degree C Although another part number LM35 can output temperatur e in 10mV per degree C, the output falls into even lower ADC range for ambient temperature m easurement since the same 72 degree F is only 22 degree C, which means LM35 only outputs 22 x 0.01 = 0.22V. Hence for better accuracy and resolution we recommend using LM34 instead of LM35 and if need be then convert it to degree C using TBASIC. Another advantage for using LM34 instead of LM 35 is that you can measure down to 0 o F (-17 degree C) without using a negative voltage source as shown in the circuit on the right in Figure 5.7. 5.3.3 Using Thermocouple Thermocouples are very rugged devices that are widel y used in the industry because of their stability, accuracy, and wide functional temperature range. They are commonly used in measuring temperature in ovens that may go up to several hundred degrees C. However, thermocouple output signals ar e in the range of tens of microvol ts to mille-volts, which is too small to be measured by the EZWire1616’s analog input directly. You will need a “signal conditioner” that can amplify the thermocouple output to 0-5V, wh ich can then be connected to the PLC’s analog input. 5.3.4 Using PT100 Temperature Sensor PT100 is a positive temperature coefficient thermistor that is made from platinum. It has the advantage of being very stable and highly accurate. It is usually connected to a signal conditioner in a balanced bridge configuration and the signal conditioner will convert temperature changes to 0-5V output for the PLC.

135. Chapter 14 Serial Communications 14-3 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 9 9 Host PC RS232 or USB-RS232 Converter (Male DB9) F2424 COMM1 (Female DB9) Figure 14.4 Connecting COMM2 to a Modem Pin 4 and 6 are handshaking signals whose presence may be required by some modems to work properly, so these pins are connec ted as shown in the diagram. 14.4 COMM3: Two-wire RS485 Port This half-duplex RS485 port is meant for serial bus type networking or for connecting to optional peripherals such as a serial LCD message-display unit (e.g. MDS100-BW), external analog modules (e.g. I-7018), touch panel HMI, or for inter-communication between PLCs. Up to 255 RS232/RS485 peripheral devices may be linked together in an RS485 network on COMM3. The RS485 port is available on 2-way screw term inals between the RS232 (COMM1 and COMM2) ports (please refer to Chapter 1 - Installation Guide). For successful communication with the RS485 port, you need to correctly connect the ‘+’ and ‘-’ terminals to the RS485 equipment using a twisted pair cable. If you are using the PC as the network host, you will need an RS232C-to-RS485 converter such as the “Auto485” or USB to RS485 conver ter such as the "U-485". The following describes some possible uses of the RS485 port. 14.4.1 PROGRAMMING AND MONITORING The EZWire1616 can be programmed via its RS485 por t on a one-to-one or multi-drop manner. Since most PCs only have RS232 port(s) (or USB ports for which USB-to-RS232 and USB-RS485 converters are readily available), you need to purchase an RS 232-to-RS485 or USB-RS485 converter in order to program the PLC via its COMM3 port. The most co mmonly available types of RS485 converters today use the RTS signal to control the RS485 transmitter direction, which is supported by the TLServer software. However, we strongly recommend an auto- turnaround type of converter such as the Auto485 adapter (configured in ‘Auto’ mode) for use with Windows programs. Under Windows, the application software does not have very deterministic control of the RTS pin at precise timing and that can contribute to the occasional loss of communication when the RS485 transceiver is not switched at the proper moment. Programming via COMM3 is particularly useful if COMM1 and COMM2 are already assigned to other tasks such as interfacing to modem, bar code readers, a SCADA system or MMI *. The programmer can continue to program and monitor the PLC using it s RS485 port while its COMM1/COMM2 is actively communicating with other devices. This makes it much easier to troubleshoot communication problems at COMM1/COMM2 since you can continuously monitor the data exchange between the PLC and the external devices connec ted to these ports. EZWire1616 COMM1 (Male DB9) Tx Tx Rx Com Com RTS / CTS Rx Modem (Female DB9)

194. Chapter 18 Extended File System 18-6 can start to retrieve ASCII data from the file li ne-by-line using the INPUT$(8) command. A line is either a string that is terminated with a Carriage Return character (ASCII 13) , or is a 70-character long string (which is the maximum length of any st ring variables A$ to Z$) without carriage return. In either case the return string does not contain the CR character itself. The PLC can check if a file has been succe ssfully opened for reading using the STATUS(2) function AFTER executing the PRINT #8 “<READ>” command. STATUS(2) will only return a 1 if a file has been successfully opened. The PLC can determine if the End-of-File (EOF) has been reached using the STATUS(2) function after every INPUT$(8) command has been executed. STATUS(2) returns a 255 if the EOF has been reached. The PLC should then close t he file by executing the “PRINT #8 “</>” command. A$ = "<READ Z"+STR$(F,3)+".txt>" S = STATUS(2) IF S <> 0 SETLCD 1,1, "Failed to Open File" GOTO @100 ENDIF C = 0 PRINT #8 A$ SETLCD 1,1, A$ WHILE 1 A$ = INPUT$(8) S = STATUS(2) IF S = 255 EXIT : ENDIF ' S = 255 means EOF SETLCD 2,1,A$ DELAY 50 ' So that reader can read from the screen. C = C+1 ENDWHILE SETLCD 1,1, "Read ” +STR$(C) + " lines " @100 PRINT #8 "</>" ' close the opened file

3. USER MANUAL Page ii Conditions of Sale and Product Warranty Triangle Research International Inc. (TRi) and the Buyer agree to the following terms and conditions of Sale and Purchase: 1. The TRi Products are guaranteed against defects in materials or workmanship for a period of one year from the date of registered purchase. Any unit found during this time to have manufacturing defect/s will, at the discretion of TRi, be repaired or replaced. 2. TRi will not be responsible for the repair or replacement of any unit damaged by user modification, negligence, abuse, improper installation, or mishandling. 3. TRi is not responsible to the Buyer for any special, consequential, indirect or similar damages, including any lost profits or loss data arising from the use or the loss of use of TRi products. In no case shall TRi's liability exceed the purchase price for the products. 4. TRi products are NOT certified to be FAILSAFE and hence must NOT be used in applications where failure of the product could lead to physical harm or loss of human life. The Buyer is responsible to conduct his/her own tests to meet the safety regulation of the respective industry. 5. Products distributed, but not manufactured by TRi, carry the full original manufacturers warranty. Such products include, but are not limited to: power supplies, sensors, I/O modules and battery backed RAM. 6. TRi reserves the right to alter any feature or specification at any time with each product revision release. Notes to Buyer : If you disagree with any of the above terms or conditions you should promptly return the unit to the manufacturer or distributor within 30 days from date of purchase for a full refund.

29. Chapter 2 Ethernet Port 2-1 2 ETHERNET PORT Every EZWire1616 PLC has a single, built-in 10/100 Base-T Ethernet port that uses t he standard RJ45 connector on its CPU board. You can easily connect the EZWire1616 PLC to your network router, switch, or hub using the straight CAT-5 cable. When a connection is made, the yellow “Connection LED” on the RJ45 connector will li ght up, indicating that the PLC has been connected to the network router. Once connected to the network, the TRiLOGI programming software and TRi-ExcelLink works instantaneously with the PLC, allowing remote programming and process monitori ng over the LAN or the Internet. In addition, the Ethernet facility at this port c an host web pages and Java applets so that users of the equipment can control/monitor their equipment using their web browser from anywhere. Before connecting the PLC’s Ethernet port, you should confi gure it using the configur ation tool that is now built into the 6.3x or higher version of i-TR iLOGI programming software. Previously, a standalone Ethernet Configuration program was required to setup the basic and advanced Ethernet, ADC, and RTC (Real Time Clock) options. This standalone version is still available and more information on this program, including where to download it, is available at 2.14 Standalone Version of Ethernet Configuration Software ). Now these settings can be configured directly from the TRiLOGI programming software, as described next. 2.1 Configuring The Ethernet Port This tool, which is located in the "Controller" Menu of TRiLOGI, allows you to configure the Ethernet Port and ADC/RTC calibration settings on a TRi's PLC with built-in Ethernet port, such as the Fx PLCs. When the “Ethernet & ADC Calibration” is selected from the “Controller” menu, you will see the following screen: Figure 2.1.2 The configuration program communicates with the PLC the same way as i-TRiLOGI, which is through the serial TLServer or the Ethernet FServe r. If your i-TRiLOGI is not yet connected to a TLServer software or directly to the PLC’s built-in hostlink command server (known as F- Server for all F-series PLCs), then you will need to login the standard way from the “Controller” menu. (See the i-TRiLOGI Programmers Reference Manual for more information on this) If you are communicating through TLServer, which is via the RS232 or RS485 serial port, your PC should have an RS232/RS485 port. Otherwise, you should purchase a USB-to-RS232 or USB-to-RS485 converter in order to run this program. Before you make any changes to the PLC's Ethernet configuration parameters, it is a good idea to retrieve the current settings. You can do this by clicking on the “Retrieve Parameters from PLC” button and answer "Yes" when prompted. If your i-TRiL OGI is not yet connected to a TLServer software or directly to the PLC’s F-Server, then you will see the standard login popup window. Figure 2.1.1

77. Chapter 4 Timers, Counters & Sequencers 4-3 Figure 4.2: Completed Timer Circuit 4.2.4 Example 2 – Creating a Simple Counter Circuit in Ladder Logic You can place components in the circuit by clicking in the green area to the right of the red arrow, as shown in Figure 4.3 below. This will bring up the component tool bar in t he gray area above the green circuit area. Figure 4.3: Creating Ladder Circuit Once the component toolbar is shown, you can pl ace your activating contact by selecting the #1 component from the toolbar and then selecting the activating input from the I/O Table. The contact will then be automatically placed in the ladder logic circuit. The same can be done for the counter coil by selecting the #7 co mponent from the toolbar and then selecting a counter that has been entered into the I/O Table. Then a counter contact needs to be added as an input to a ladder logic circuit. This contact will activate once t he counter counts down. This could be used to turn on an output after a certain count is reached. Placing a c ounter contact in a circuit is the same as placing any contact in a ladder circuit, except that the co rresponding counter should be selected from the “Counters” section of the I/O table. After creating a ladder circuit that contains one input and one counter output and another ladder circuit that contains one counter contact and one output, the l adder logic circuit should like something like Figure 4.4, below: Figure 4.4: Completed Counter Circuit

138. Chapter 14 Serial Communications 14-6 the PLC is reset this way, its COMM1 will power up at the default format of 38,400, 8,n,1 only so you will need to configure TLServer’s serial por t to 38,400bps to communicate with it. 14.6 Support of Multiple Communication Protocols The EZWire1616 is a real communication wizard! It has been designed to understand and speak many different types of communication protocols, some of which are extremely widely used de facto industry standards, as follows: a) NATIVE HOST LINK COMMAND b) MODBUS ASCII (Trademark of Modbus.org) c) MODBUS RTU* (Trademark of Modbus.org) d) OMRON C20H protocols. (Trademark of Omron Corp of Japan) The command and response formats of the “NATIVE” pr otocols are described in detail in Chapter 15 and 16 . The other protocols and their address mapping to t he EZWire1616 are described in Section 14.7. The three independent COMM ports 1, 2, & 3 support all of the above protocols. Each COMM port can communicate using the same or different protocol s, independent of the other. The most wonderful feature of EZWire1616 is that the support of all the above-m entioned protocols can be fully automatic and totally transparent to the users. There is no DIPswitch to set and no special configuration software to run to configure the port for a specific communication pr otocol. The following describes how the automatic protocol recognition scheme works: 1. When the PLC is powered ON, all three COMM por ts are set to the “AUTO” mode, which means that they are open-minded and listen to all seri al data coming through the COMM ports. The CPU tries to determine if the serial data conforms to a certain protocol and if so, the COMM mode is determined automatically. 2. Once the protocol is recognized, the CPU se ts that COMM port to a specific COMM mode, which enables it to process and respond only to commands that conform to that protocol. Error detection data such as the “FCS”, “LRC” or CRC are computed accordingly which method is used to verify the integrity of the received commands . If errors are detected in the command, the CPU responds in accordance with the action s pecified in the respective protocols. 3. When the COMM port enters a specific COMM mode, it will regard commands of other protocol as errors and will not accept them. Hence, for example, if COMM #1 has received a valid MODBUS RTU command (which puts it in an “RTU” mode), it will no longer respond to TRiLOGI’s attempts to communicate with it using the “NATIVE” mode. You will receive a communication error if you try to use TRiLOGI to access a PLC COMM port that has just been communicating in other protocol modes. 4. To improve the flexibility of switchi ng from one COMM mode to another, The EZWire1616 incorporates a COMM mode self-reset timer such that a specific COMM mode will time out automatically and enters into “AUTO” mode afte r 10 seconds if no more commands are received from that COMM port. When a user wants to switch from one COMM mode to another, he/she often will be changing the serial connector from one device to another. During this time there is no data received by the COMM port, which present s an opportunity for it to reset its COMM mode. However, the surest way to reset the s pecific COMM mode is to cycle the power to the PLC so that its COMM port will be reset to “A UTO” mode and ready to communicate with any supported protocols. 5. If you wish to use the COMM port for serial data input only, you can use the SETPROTOCOL command to set the COMM port to NO PROTOCOL . This can prevent the PLC from erroneously

103. Chapter 8 Frequency / Speed Measurement 8-1 8 FREQUENCY / SPEED MEASUREMENT The EZWire1616 provides a very straightforward means to measure the pulse width (of the ON cycle), the frequency, or the period of a rectangular-wave pulse -train arriving at its Pulse Measurement (PM) inputs #1,2,3,4,5, or #6. (Which are mapped to digital inputs #1 to #6 – see Chapter 6). 8.1 Programming of PM Input 1) To use the PM input to measure pulse widt h or frequency, execute t he PMON statement ONCE to configure the relevant input to become a pul se measurement input. You usually put the PMON statement in the init custom function and execute it with a “1st.Scan” pulse. 2) Thereafter the pulse width (in μ s) or the pulse frequency (in Hz) can be easily obtained from the PULSEWIDTH(n) or PULSEFREQUENCY(n) functi ons. You can also obtain the pulse period (inverse of frequency) using the PULSEPERIOD function. E.g. A = PULSEWIDTH(1) B = PULSEPERIOD(1) C = PULSEFREQUNCY(1) 3) All PM inputs by default return the measured pul se width and pulse period in unit of microsecond. However, for those who desire better resolution, you can define PM #1 to #4 to return the measured pulse width and pulse period in 0.1 microsecond resolution by executing the following command once only during initialization: SETSYSTEM 20, 1 Once the above statement is executed, if PU SLEWIDTH(1) - PULSEWIDTH(4) returns the value 1234 it means the measured pulse width is 123.4 μ s . However, PULSEWIDTH(5) and PULSEWIDTH(6) would still only return the measured width in microsecond. A sample program can also be found on y our i-TRiLOGI installation folder at: C:\TRiLOGI\TL6\usr\samples\PulseMeasurement.PC6

32. Chapter 2 Ethernet Port 2-4 2.1.4 DNS Server IP Address DNS (Domain Name Server) allows the FServer to contact a remote server by means of domain name instead of IP Address. The DNS takes in the giv en domain name (such as yahoo.com) and returns the IP address of the target server. You will need to fill in the DNS IP Address if you intend to ask the Fserver to resolve a domain name into an IP address, or you int end to contact a client directly by using domain name instead of using IP Address. The DNS server IP address could be the same as the Ga teway IP Addr described in section 2.1.3. But it will be more efficient to define the actual DNS server IP address that your ISP provides. You can use the global DNS server IP address (8.8.8.8), or obt ain the DNS server IP address by going to the Administrator page of your router and pull up informat ion on the WAN. E.g. T he DNS server address you can see from the following screen is 64.59.144.92. 2.1.5 No. of Connections (FServer/ Modbus TCP) The EZWire1616 CPU assigns sufficient memory to support up to a maximum of 10 simultaneous TCP/IP connections to the FServer and Modbus/TCP server. By default, each server is assigned a maximum of 5 connections each. However, to improve flexibility, you can re-assign the mix of maximum connections between the two servers as long as the no. of M odbus/TCP connections does not exceed 5 and the no. of FServer connections does not exceed 8. This means that you can define 5 to 8 FServer connections and 2 to 5 Modbus/TCP connections. When you change t he number in one box the other box will change automatically so that the total number of possible connections remains at 10. 2.1.6 FServer Port No. The Port number is a 16-bit integer (range 0 to 65535) that needs to be specified on top of the IP address when accessing the FServer from across the network . The default value is 9080, which is the same default value used by the TLServer and TRiLOGI client software. A second port with a value of the main port + 1 is automatically defined for a single FServer connection. Port 9081 is defined by default. The purpose is to allow for a dedicated access port in case the connections on the other port are used up Please see the TRiLOGI programmer’s manual for an explanation of the use of the port number. One reason why you may want to change the port number is to use the “port forwarding” capability of an NAT

96. Chapter 5 Analog I/Os 5-14 Proportional Error = 9.920/10.000 = 0.992 Multiplication factor required to correct the DAC output = 1/0. 992 = 1.0081 = (1+81/10000) You can therefore enter the value “81” into the “D AC Calib.” field corresponding to DAC #1 and save the parameters to the PLC. After the PLC has rebooted, when you execute the st atement “SETDAC 1,2048”, the CPU would apply the multiplication factor of 1.0081 to the actual digital value it sends to the DAC output. The actual DAC output = 9.920mA x 1.0081 = 10.00mA. Example 2: Same as Example 1 but you m easure 2.515V when you expect 2.500V Proportional Error = 10.060/10.000 = 1.006 Multiplication factor required to correct the DAC output = 1/1.006 = 0.9940 = (1 – 0.0060) You should therefore enter the value –60 into the “D AC Calib” field corresponding to DAC #1 and save it to the PLC. After the PLC has rebooted, when you execute the statement “ SETDAC 1,2048”, the PLC will apply the multiplication factor of 0.9940 to 2048 before it writes to the DAC hardware. The actual DAC output = 10.060mA x 0.994 = 10.000mA 5.5.4 DAC Zero Offset If you plot the line graph for the output current vers us the DAC set value, the line should normally pass through the origin. But if there were any zero offs et error, then the line would be above or below the origin. The DAC output on the EZWire1616 shoul d not have any zero offset e rror and you normally should just leave these fields set to “0”. However, if for any reason there is a need to apply a ze ro offset error correction, you can enter a value between –100 to +100 into the “DAC Zero Offset” fi eld. The CPU would add the zero-offset value you enter into this field to the “X” in the “SETDAC n, x” statement and only send the sum to the actual DAC hardware. 5.5.5 A/D Moving Avg This field lets you define the number of points of moving average that the EZWire1616 CPU firmware uses to compute the value returned by the ADC(n) function (Please see explanation of moving average in Section 5.2.5). A larger number of moving Average points has the positiv e effect of filtering out large noise spikes seen at the analog input, but the disadvantage is that the PLC would be slower in noticing a sudden step change at the analog input. If you specify a moving av erage of 1 point, that means no moving average will be used and the ADC(n) function will return the most recently sampled data at the analog input #n.

121. Chapter 11 Pulse Width Modulated Outputs 11-3 Note: 1. The opto-isolator must be able to operate at a frequency matching that of the PWM frequency, otherwise the resulting output waveform will be distorted and effective speed control cannot be attained. 2. The simple PWM speed control scheme descri bed above is the open-loop type and does not regulate the speed with respect to changing load torque. Closed-loop speed control is attainable if a tachometer (either digital or analog) is used whic h feeds back to the CPU the actual speed. Based on the error between the set point speed and the act ual speed, the software can then adjust the PWM duty cycle accordingly to offset speed variation caused by the varying load torque. A PID function may also be invoked to provide sophi sticated PID type of speed control. 3. The EZWire1616’s PWM can be used to control the speed of small motors only (up to the maximum current limit that the PLCs output can safely drive). For larger motors, industrial-grade variable-speed drives should be used instead. 11.4 Position Control Of RC Servo Motor RC Servo is a class of DC servo motor commonly us ed in remote control (hence the term RC) for positioning a device at a desired location. It is oft en termed “proportional control” because the position where the motor will turn to is directly proportional to the pulse width of the control signal. When chosen appropriately, RC Servo can provide an extremely i nexpensive and versatile solution for positioning a device. For example, for controlli ng the percentage opening of a HVAC damper, or to rotate the angle of window blinds or to position a solar panel to tra ck the sun light. There are many sizes of RC Servo available in the market, from those that weigh just a few grams to those for controlling an industrial scale unmanned vehicle (e.g. UAV or unmanned submarine). A small, self-contained RC servo typically cost less than $20 retail price and is incredibly easy to cont rol using the PWM output on the EZWire1616. 1ms 1.5ms 2.0ms Figure 11.3 RC Servo and Control Signal RC Servo typically only have 3 wires: Power “ + ” (typ ically 4.8 to 6V), “ – “ and a “Control” input. To position the RC Servo to a position within its range of travel (Some are 0 to 90 degree and there are those that can go from 0 to 180 degree), you send a pos itive pulse with pulse width between 1.00 ms to 2.00 ms to the “Control” input once every 20ms. T he servo will position the actuator to one end when it receives a pulse of 1.00ms and the other end when it re ceive a pulse of 2.00ms. If you send it a pulse of 1.50ms it will position the actuator to the center.

146. Chapter 14 Serial Communications 14-14 14.9 Using The PLC As a Modbus Master The EZWire1616 support for the MODBUS protocol goes beyond being a MODBUS slave only. You can use the TBASIC READMOBUS and WRITEMODBUS co mmands, as well as READMB2 and WRITEMB2 to send out MODBUS ASCII or RTU commands to acce ss any other F-series, FMD or Nano-10 PLCs or any third party MODBUS slave devices. The R EADMODBUS or READMB2 commands use MODBUS Function 03 (this can be changed to function 04 us ing SETSYSTEM 6,4 command) to read from the slave, and WRITEMODBUS or WRITEMB2 use MO DBUS Function 16 to write to the slave. Note that when using the READMODBUS or WRITEMODBUS commands, the 40001 address stated in Table 14.1 should be interpreted as address 0000, and 40002 as address 0001, and 41001 as address 1000, etc. This is in accordance with the specific ations stated in MODBUS protocol. MODICON defined zero offset addresses for the MODBUS protocol, ye t in their holding register definition these are supposed to start from address 40001 - hence the unusual correspondence. But to maintain compatibility with the MODBUS specifications, we have to adhere to their definitions. 14.9.1 EZWire1616 PLC As MODBUS RTU Master The EZWire1616 PLC can also act as a MODBUS RTU master! The same READMODBUS and WRITEMOBUS commands can be used to send and receive MODBUS RTU commands. What you need to do is add 10 (decimal) to the COMM port number to signal to the processor that you wish to use MODBUS RTU instead of MODBUS ASCII to talk to the slaves. In other words, you should specify port #11 to use RTU commands on COMM1, and specify port #13 to use RTU commands on COMM3. E.g. the statement DM[10] = READMODBUS (13, 8, 16) will access, via COMM3, the slave with ID = 08 and r ead the content of register #16. This register corresponds to MODICON address 40017 and is the OUTPUT[1] of the slave PLC. The ability to speak MODBUS RTU greatly extends the type of peripherals that can be used with a EZWire1616 PLC. You can now make use of many off- the-shelf, third party RTU devices to extend the PLC capability.

205. Chapter 18 Extended File System 18-17 STATUS(20) > 0 : Number of bytes uploaded to FTP Server. Transfer is in progress. < 0 : Total number of bytes uploaded. Transfer completed. For example, If 2,345 bytes has been uploaded to the server and the transfer has ended, STATUS(20) will return the number = –2345. Since file transfer can take substantial amount of time to complete, it is not wise to run a loop to wait for the file transfer to complete since this will block the PLC from processing any other part of the program. The demo “ExtendedFileSystem.PC6” s hows you how to setup a monitoring function to periodically monitor the progress of the file transfer and r eport the transfer status on the LCD display. Please refer to the comments in the custom function “fnConnFTP” and “fnMonFTP” of the “ExtendedFileSystem.PC6” program for more detailed descriptions of each command involved in the FTP file transfer.

42. Chapter 2 Ethernet Port 2-14 3. Manage Network Connections : In the Network and Sharing Center window, click on the Manage network connections option under the tasks pane on t he left side of the window as in the below picture. 4. Follow steps 2-5 in the Windows XP Ethernet Configuration section above to complete the setup, as it is the same process. Windows 8 Ethernet Configuration 1. Open the Network Window . The first thing you will need to do is open the Control Panel from the “Start” menu by right-clicking in the bottom left cor ner of the screen where the Start Menu is accessed (below left screenshot):

43. Chapter 2 Ethernet Port 2-15 2. Open View Network Status and Tasks Window . Next you need to click on the "View network status and tasks" link under the "Network and Inter net" category (above-right screenshot), which will bring up the "Network and Sharing Center" window (below screenshot). 3. Click on the "Change Adapter Settings" Link . This will bring up the "Network Connections" window where you can configure the necessa ry network settings for the local adapter. Follow steps 2-5 in the Windows XP Ethernet Configuration section above to complete the setup, as it is the same process. 2.3 On-line Monitoring/Programming via FServer If you have used the I-TRiLOGI softwar e to connect to TLServer previous ly, the procedure is identical. To test TRiLOGI communication with the F-series PLC, c lick on “Controller -> On-Line Monitoring”, or simply press <CTRL-M> keys.

87. Chapter 5 Analog I/Os 5-5 A very simple example of sampling the analog input #1 to #4 every second and converting the data into voltage readings of 0 to 5000 (which repres ents 0 to 5.000V) is shown as follow: Figure 5.5 You can examine the readings of DM[ 11] to DM[14] from the “Online Monitoring - View Variables-DM[n]” screen. These readings represent the voltages measur ed at the analog input pins. You can also read the raw ADC readings (which will change in the range betw een 0 to 4095) from the “View Variables - integer” screen. You can off course also use the floating point variables to directly stor e the computed readings as floating point number. E.g. V# = ADC(1) /4096.0 * 5.0 5.2.5 Moving Average The EZWire1616 PLC offers a built-in “Moving Av erage” computation routine for each ADC channel. When moving average is enabled the PLC firmware would store the past analog readings for each channel in its own historical memory array, and each new instantaneous reading would overwrite the oldest reading. When you run the ADC(n) function, t he PLC firmware would return the average of these past readings instead of the instantaneous new reading. You can define a moving average of 1 to 9 points using the procedure described in Section 5.4.5 Defining a larger moving average can better help to ev en out fluctuations in ADC readings that can be caused by interference from digital noise. However, t he larger the moving average, the slower the ADC(n) function can detect a sudden change in the amplitude of the analog signal due to the averaging effect. For a system that needs to quickly detect a signal c hange, consider using either a smaller number of moving average points or call the ADC(n) functi on more frequently so that a sudden change can be detected earlier. 5.2.6 Scaling of Analog Data The 12-bit analog inputs on the EZWire1616 return data in the range of 0 to 4095, which corresponds to the full range of the voltage input presented at the analog pin. However, very often a user needs a formula to translate this numeric data into units meaningful to the process (e.g. degree C or F, psi etc). To do so, you need to know at least two refer ence points of how the native unit maps to the PLC's ADC reading. Reference Point ADC Reading x1 a1 x2 a2

211. Chapter 19 Using PLC As A Modbus/TCP Gateway 19-3 Where n = number of retries for each COMM port as follow: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Ethernet COMM3 COMM2 COMM1 Thus each COMM port could be configured to re-a ttempt to send the command from 0 to 3 times if it does not get a response from a Modbus RTU slave. The default settings for n = &HAA (or 10101010 binar y) which means each COMM port as well as the Ethernet port will retry twice (making a total of 3 attempts). E.g. If you run SETSYSTEM 2, 0 the gateway will not resend the RTU command on any of its COMM port if does not receive a response on the first attempt. This can help to reduce the CPU scan time if a Modbus RTC slave does not respond. 4) We strongly recommend that the serial port #n that is to be used as a gateway serial port be configured to be “No protocol” by running the SET PROTOCOL n, 10 statement once. This is to ensure that the serial data returned from the RT U slaves will never be interpreted wrongly by the master PLC as incoming commands, which could lead to errors. (The same advise applies to PLC programs that use the serial port to run READMODBUS, WRITEMODBUS, READMB2 and WRITEMB2 commands). 19.5 Modbus/TCP Gateway Sample Program Please download the following self-explanatory I-TRiL OGI sample program that demonstrates the new Modbus/TCP Gateway capability via any of the selected COMM port: http://www.tri-plc.com/trilogi/modbusgateway.zip

20. Chapter 1 Installation Guide 1-7 The specifications and programming methods for t he analog I/Os are detailed in Chapter 5 of this manual. 1.2.3 Digital I/O Ports: The 16 channels of digital inputs and 16 separate channel s of digital outputs are available along the top level of PLC’s 3-level terminal block. The EZWir e1616 PLC also supplies a +24V sensor/actuator supply output for each digital I/O point along the middle leve l and a digital ground (0V) for each digital I/O point along the bottom level, as shown below: Figure 1.6: Digital I/O Terminals Although wires may be connected directly to the screw terminal, insulated crimp ferrules should be used to provide a good end termination to multi-stranded wires. Use of ferrules reduces the possibility of stray wire strands short-circuiting adjacent terminals and their use is, therefore, highly recommended. 1.3 Power Supply The EZWire1616 PLC requires a single regulated, 12 to 24V (+/- 5% ripple) DC power supply for the CPU. The CPU typically consumes less than 250mA so most of the current budget calculation should be allocated to driving the output load, It is reco mmended that whenever possible, use a higher voltage

185. Chapter 19 Zigbee Communication 17-2 17 LIGHT DIMMER CONTROL 17.1 Introduction You may have used one of those commercial light dimmers to control the brightness of incandescent light bulbs. Modern light dimmers are mostly based on contro lling the “firing angle” of a type of semiconductor switch known as “TRIAC” (which stands for “AC transistor”). A TRIAC is a semiconductor switch that conducts curr ent when a trigger voltage is applied to its “Gate” terminal. However, what makes the TRIAC different from a typical transistor is that once the TRIAC starts conducting current, it cannot be switched off even if t he voltage to the gate is removed. I.e. The TRIAC switch is “latched” once it is turned ON. That also means that you only need to apply a very short trigger pulse to the “Gate to turn it ON. In control term this is often known as “firing” of the TRIAC. Since the TRIAC is latched ON and cannot be turned OFF regardless of what voltage or no voltage is applied to the “Gate”, it will be quite useless for swit ching DC current as the switch cannot be turned OFF! However, when a TRIAC is used to switch AC curr ent, since at every half cycle the AC voltage must change polarity, that means the TRIAC will be switch OFF automatically during zero-crossing. Once the TRIAC is switched off, it can only be switched ON again by applying a triggering voltage pulse (also known as “firing pulse”) to the “Gate” again and this process must be repeated every half cycle. This is illustrated in the following two figures. Zero Crossing Triac Firing 45 deg Triac Firing 45 deg Triac OFF Triac ON Triac ON Figure 18.1(a) Zero Crossing Triac Firing 90 deg Triac Firing 90 deg Triac OFF Triac ON Triac ON Figure 18.1(b) In Figure 18.1(a) the TRIAC is triggered at the phase angle = 45 degree, whereas in Figure 18.1(b) the TRIAC is fired at phase angle = 90 degree. The TR IAC conducts the AC current immediately upon receiving the firing pulse and will only turn itself OFF at the next zero crossing. In the next half cycle the TRIAC needs to be fired again in order to conduct and this process repeats itself indefinitely. You can easily see that the TRIAC in Figure 18.1(a) is turned ON earlier compared to the TRIAC in Figure 18.1(b). This means that when a load such as an incandescent lamp is connected to the TRIAC, it will be turned ON a greater proportion of time using the firing angle shown in Figure 18.1(a) and therefore will appear brighter compared to the that in Figure 18. 1(b). By controlling the “firing angle” applied to the TRIAC you can achieve the objective of controlling t he brightness of the lamp. The lamp will be brightest when the firing angle is near 0 degree and will be dimmest when the firing angle is near 180 degree. Controlling lamp brightness this way is highly effi cient. Unfortunately the transfer function is non-linear (i.e. the brightness is neither proportional non invers ely proportional to the firing angle) and therefore it has limited applications in precision digital control syst em. But it can provide low cost control for devices such as lamps, since the operator who receives in stant visual feedback can va ry the firing angle manually until a satisfactory brightness is obtained.

66. Chapter 2 Ethernet Port 2-38 2) FileZilla Can Connect The First Time But Could Not Re-connect After Time-Out FileZilla is normally setup to time out after 1 mi nutes of no activity. However, Since the PLC’s FTP server can only handle a single FTP connection at a time , it is good to avoid letting FileZilla time out due to no activity. This is because when FileZilla time s out it cutoff the connection to the PLC. But if for whatever reason the PLC were to miss the disc onnection information it will be left in a "half-open" state and will not be able to accept a new connecti on. When this happens and if you try to reconnect to the PLC again after the connection has been dropped by FileZilla, you will most likely be unable to connect to the PLC again until after the PLC time out its FTP connection due to no activity. The only quick fix is to power-on reset the PLC so that it starts up fresh and can a ccept new connection again. You can set the FileZilla timeout settings to a la rger number (e.g. 300 seconds) using the FileZilla’s “Edit->Settings” menu item so that it will not time -out automatically too qui ckly. You should always select "disconnect" after a file transfer to properly close the connection and then the PLC will be properly disconnected and is ready to accept new connection. 3) Problem Using FileZilla To Transfer Files to Multiple PLCs Configured To The Same Default IP Address Even Though Only One PLC Is Connected To The Router At A Time. When you connect FileZilla to a PLC with a particula r IP address (e.g. 192.168.1.5) for the first time, Windows will memorize the MAC-ID address of that PL C and associate it with this IP address in its “ARP cache” (ARP = Address Resolution Protocol ). So when you power off one PLC and immediately plug another PLC with the same IP address to t he network, then Windows will pass to FileZilla the MACID of the PREVIOUS PLC instead of the new PLC using data in its ARP cache memory. When FileZilla tries to connect to the right IP address but a wrong MACID, it of course would not be able to connect properly. In such a scenario, you must clear the Windows AR P cache first using a command prompt as follow: The “ arp –d ” command tells windows to delete its ARP cache data. So when you use FileZilla to connect to a new PLC Windows will do the necessary to properly connect to the new PLC that has a different MACID from the previous PLC. Note that the same issue applies to using I-TRiLOGI to transfer program to multiple PLCs that are all set to the same default IP address, even though only one PLC will be connected to the ne twork at a time. You will need to clear the ARP cache after every transfer to avoid problem. Or else you have to wait for windows to expire its ARP cache data befo re connecting the next PLC.

191. Chapter 18 Extended File System 18-3 18.1.1 Advantage of Using Data Uploading 1) Although it is possible to directly access the PLC’ s internal web server to download the data file it has created, this does require active action by t he user and to ensure that the data are retrieved before the file is full and deleted by the PLC to create space to log new data. 2) By programming the PLC to upload the data periodi cally the PLC can delete the file after it has successfully uploaded the data file to free up space to accept new data. In other words the PLC will never run out of data space to log data si nce it can store the logged files on any server including the Cloud! 3) To directly access the file stored on the PLC from outside of the LAN, you will need to setup the router or firewall to “forward” the PLC’s server port (e.g. 9080) to the PLC. If you have multiple PLCs logging data, then each PLC will need to have a different port number in order to properly forward the data. This not only complicates the setup, but also is often frown upon by System Administrator and may not even be permitted by the corporate network security policy. 4) The PLC is designed to upload data to any web server via FTP passive mode by providing the login username and password. Using FTP passive mode allows the PLC to open a network connection to an external web-server to upload a file and then close the connection immediately. It does not require opening a port on your router to permit external access to the PLC from the Internet. Hence there is no complicated router setup involved as there is no port forwarding required. It also eliminates the security risk fr om someone trying to take control of the PLC from outside of your LAN and is generally much more acceptable to the System Administrator. If you have multiple PLCs in use, you can program each PLC to upload data to a different directory or append a different file name prefix, or to a differ ent server, and once programmed all PLCs will happily log data unattended indefinitely! 18.2 File Structure and File Naming of The Extended File System EZWire1616 uses a very simple file system, where the 1740K bytes of file space are divided into 435 slots of 4K bytes each. The file system does not use any kind of file alloca tion table; hence it must follow a strict naming scheme because the file name directly relates to where it is stored in the file space. The followings describe how the files are named and where they are stored. 1. The first 35 files are named “0.yyy”, “1.yyy”....”X.yyy”, “Y.yyy”. 2. The ‘yyy’ part of the file name is the “ext ension”, and only the following MIME extension are accepted by the PLC: HTM, JPG, GIF, CSS, JS, BIN, TXT, JAR, ZIP, XLS Any other extension names will be replaced by “ ???”. The MIME extension are respected by the web browser when you download a file from the bu ilt-in web server so you should always only store files with one of the above extension. 3. The file “0.yyy” occupies the first 4K byte slot, “1.yyy” occupies the second slot... the “Y.yyy” occupies the 35 th slot.

117. Chapter 10 Stepper Motor Control 10-8 The r parameter specifies which internal relay will be activated once the motor has moved to its new position. This relay would be cleared when the STEPMOVEABS command is executed in case it was already activated. 10.4.6.1 Example: PLC as a Motor Controller In this example, the PLC would be a controller and w ould send the control pulse and direction pulse to a driver board. STEPMOVEABS 1,500,101 ‘ Stepper #1 to move fwd 500 steps from home and turn on relay 101 STEPMOVEABS 2,-75,102 ‘ Stepper #2 to move back 75 steps from home and turn on relay 102 STEPMOVEABS 3,200,103 ‘ Stepper #3 to move fwd 200 steps from home and turn on relay 103 10.4.6.2 Example: PLC as a Full-Step Motor Driver STEPMOVEABS 11,300,101 ‘ Stepper #1 to move fwd 300 pulses from home and turn on relay 101 STEPMOVEABS 12,100,102 ‘ Stepper #2 to move fwd 100 pulses from home and turn on relay 102 STEPMOVEABS 13,-90,103 ‘ Stepper #3 to move back 90 pulses from home and turn on relay 103 10.4.6.3 Example: PLC as a Half-Step Motor Driver STEPMOVEABS 21,300,101 ‘ Stepper #1 to move fwd 300 pulses from home and turn on relay 101 STEPMOVEABS 22,-10,102 ‘ Stepper #2 to move back 10 pulses from home and turn on relay 102 STEPMOVEABS 23,50,103 ‘ Stepper #3 to move fwd 50 pulses from home and turn on relay 103 10.4.7 Demo Program for Stepper Motor Control A demo program for programming the Stepper Motor Controller and Driver: “Stepper Motor - F2424.PC6” can be found in the FPLCsamples.zip file which can be downloaded from: http://www.tri-plc.com/trilogi/FPLCsamples.zip

210. Chapter 19 Using PLC As A Modbus/TCP Gateway 19-2 However, if the client send a Modbus/TCP packet with a different ID from that of the gateway PLC’s ID, then the gateway PLC will translate the command in to a Modbus RTU command and send it out of the gateway serial port #n defined by the “SETSYSTEM 12, n” statement. The PLC will also wait for a response from the RTU slave via the gateway serial port, and if it does receive a response it will translate it into Modbus/TCP response packet and return to the client. Note: 1) If the Modbus/RTU slave being addressed does not respond to the RTU command, then the gateway PLC will wait till time-out (defaul t is about 150ms) and then resend the Modbus RTU command and wait for a response again. By defaul t the gateway PLC will repeat this procedure twice and if it still doesn’t receive a respons e after repeated attempts, it will send back a “TARGET DEVICE FAILED TO RESPOND” error pa cket back to the Modbus/TCP client. (i.e. It will set the 7 th bit of the function code to “1” and send back an exception code “0B” hex). 2) The CPU firmware is designed to handle only one Modbus gateway translation for each Modbus/TCP connection per ladder logic scan. This is to ensure that the CPU is not completely bogged down by its Modbus gateway job and will hav e time to run its own program. If the Modbus/TCP clients attempt to overload the PLC with more requests than it can handle the PLC will frequently return “SLAVE DEVICE BUSY” error re sponse packets back to the client. (i.e. It will set the 7 th bit of the function code to “1” and send back an exception code “06”). 19.4 Fine-Tuning The Modbus/TCP Gateway Function It is important to know that every time the PLC runs a Modbus/TCP to Modbus RTU translation its own program scan time increases due to the need for the CP U to wait for a response from the slave Modbus RTU devices. The delay becomes much more pr onounced when a Modbus slave device fails to respond (e.g. not online). The system designer must therefor e take this into consideration when designing the system: 1) The Modbus/TCP client should not overload the Modbus gateway with unnecessarily frequent Modbus requests. Whenever the PLC report a “TARGET DEVICED FAILED TO RESPOND” function the client program should back off for a while before re-trying communication with the Modbus/RTU slaves again. 2) You can change the number of wait states the gateway will wait for a response from the Modbus/RTU slave by running: SETSYSTEM 1, w Where w = number of serial port wait states for each COMM port as follow: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Ethernet COMM3 COMM2 COMM1 Thus each COMM port could be configured to wait fr om 0 to 3 wait states for a response. The default settings for w = &H55 (or 01010101 binary) which means each COMM port as well as the Ethernet port uses 1 wait state of about 150ms.. 3) You can change the number of retries (default = 2) the gateway will attempt to get a response from the Modbus RTU slave by running: SETSYSTEM 2, n

36. Chapter 2 Ethernet Port 2-8 2.2 Connecting Ethernet to the PLC Introduction All EZWire1616 PLC can connect to the PC r unning TRiLOGI many ways as follows: a) Wired connection to a router that the PC is also connected to (PC connection can be wired or wireless). b) Direct connection to the PCs wired Ethernet port via crossover cable c) Wireless connection to a wireless router if t he PLC is connected to a wireless bridge (adapter) Only the first two options, which ar e most common, will be described here. 2.2.1 Connecting the PLC to a Local Area Network In a typical local area network (LAN) there would be one router (wired or both wired and wireless) that the network devices connect to, one modem that provides Internet to the router, and the devices connected to the router (such as the PLC and PC). Before You Begin The first thing you need to do is configure the network settings in the PLC to match those of the LAN. This is typically done as follows: 1) Find out what your routers gateway address is (typically 192.168.1.1 or 192.168.0.1) and what static IP addresses are free to use with your PLC. NOTE: if the routers gateway address is “192. 168.1.1”, the default PLC IP address (192.168.1.5) will most likely work unless it is already used by another device on the same network. If it is free to use, the next two steps can be skipped as the PLC will already be able to connect to the LAN. 2) Connect to the PLCs serial port fr om the PC with TRiLOGI and TLServer. 3) Edit the PLC network settings using the Ethernet & ADC Configuration tool from the “Controller” menu in TRiLOGI. Only the IP address is necessary to configure for basic connection to the LAN. Please refer to the Quick Connection guide in appendix 1 of the i-TRiLOGI Programmers Reference Manual . to connect the PLC to your PC via serial port. Please refer to section 2.1 of this manual for more detailed in formation on network configuration. Network Wiring You will likely already have a network av ailable that consists of an Inter net modem that provides Internet to a wired or wireless router, which has at least one PC connected to it. In this case, all that needs to be done is connect the PLC to the router with standard Ethernet cable. The final network configuration will likely rese mble the below simple network diagram.

94. Chapter 5 Analog I/Os 5-12 5.5 Calibration of ADC and DAC & Moving Average Definition The ADC and DAC are factory-calibrated such that a voltage of 2.500V should return a value of 2048 when read by the ADC(n) function. Likewise, an output current of 10.00mA should be present at the DAC pin when you SETDAC to 2048. However, if there is a need to re-calibrate the ADC and DAC you can follow the procedure outlined below. To perform calibration of an ADC channel, you need to supply a precise DC reference voltage to the ADC channel, and then check the analog readings obtained via the ADC(n) function and compare it to the expected value. If there is an error, you can apply a correction factor to it. To perform the ADC or DAC calibration, you would need to use the “F-Series Ethernet Configuration” software mentioned in Chapter 2.1. Click on the “Advanced” button on the Basic Configuration screen and open the “F-series Ethernet Advanced Configurati on” screen. The bottom half of the screen contains ADC and DAC calibration constants that you can enter and transfer to the PLC, as shown below: Figure 5.11 5.5.1 ADC Calib. These fields are used to apply a multiplication fact or to the value returned by ADC function. The multiplication factor = (1+ x/10000). Example 1: If you apply 2.500V to ADC #1, you would expect the value returned by ADC(1) to be 2048. But the actual average reading centers around 2060. Proportional Error = 2060/2048 = 1.005859 Multiplication factor required to correct this error = 1/1.005859 = 0.9942 = (1 – 58/10000) => x = -58 You should therefore enter a value of 58 into the “ADC Calib” field for Ch #1 and save it to the PLC. After the PLC has rebooted, the CPU would apply the mu ltiplication factor of 0.9942 to the readings it received, which would correct the reading to: 2060 x 0.9942 = 2048. Example 2: If you apply 4.000V to ADC #8, you would expect the ADC(8) function to return a value of 4.000/5.000 x 4096 = 3277. However, your program returned a value of 3230 from ADC(8). Proportional Error = (3230)/3277 = 0.985658 Multiplication factor required to correct this error = 1/0.985658 = 1.0146 = (1+ 146/10000) => x = +146

111. Chapter 10 Stepper Motor Control 10-2 The most commonly available stepper motors today are either 4-wire, 5-wire or 6 wires types and their windings are as shown in Figure 10.1 • 4-wire stepper motors require drivers that can reve rse current flow from coil terminal 1 to 2 or from 2 to1, as well as from terminal 3 to 4 or from 4 to 3. These kinds of drivers are known as “bipolar drivers”. • 5-wire stepper motors typically connect the common terminal (5) to the power (e.g. +24V DC) and 4 current sink drivers are connected to terminals 1 to 4 to sink the current to 0V. The sequence in which the four coils are activated controls t he rotation of the stepper motor. These kinds of drivers are known as “unipolar” drivers. • 6-wire stepper motors are the most flexible and may be connected either to bipolar drivers (leaving terminals 5 and 6 unconnected) or to unipolar drivers (connecting terminals 5 & 6 together to “+” terminal. Since all the EZWire1616 digital outputs are NPN (cu rrent sink) type, only 5- or 6-wire type stepper motors can be used. If you have a stepper motor with 6 wires (most co mmon) but you do not have the wiring diagram, you may be able to figure out which wire is which terminal by using a multi-meter to measure the resistance between coils. E.g. the resistance between termi nals 1 and 2 will be twice the resistance between terminals 1 and 5 or between 2 and 5, likewise for terminals 3,4 and 6. There will be no connectivity between terminal 1 and 3 and between terminal 2 and 4. It will however be more tricky to figure out the actual wiring of a 5-wire stepper motor since it is di fficult to figure out which is the coil 1-2 and which is the coil 3-4, so some trial and error may be required to get the motor working. 10.2.2 Damping Circuits (Inductive Bypass) 1 EZWire1616 Stepper output terminals 2 3 4 6 5 PLC's 24V Power terminals Built-in diodes Figure 10.2 Since the stepper motor windings are all inductors, when a coil is turned OFF an inductive kick will be generated by the collapsing magnetic field, which should be bypassed with damping diode or TVS as shown in Figure 10.2 to protect the output driver.

41. Chapter 2 Ethernet Port 2-13 Note: a. Connecting the PC’s Ethernet port directly to the PLC only establishes a private network connection between the two devices. That is to say, the PLC connected this way is ONLY accessible to this PC. Even if the PC is connec ted to a LAN (e.g. via Wi-Fi connection), the PLC connected to this PC via direct Ethernet connec tion will not be accessible by any other devices on the same LAN. and the PLC will not be able to open network connection to any other devices beyond the PC that it is connect to this way. Sometimes the PC that is connected directly to the PLC via Direct Ethernet Connection may lose its Internet connection via Wi-Fi. This is because the O/ S thinks that the direct Ethernet connection to the PLC is a real network connection and attempt to route TCP/IP packets through it. That will result in a connection failure. If this occurs and you need to access the Internet, then please temporarily remove the Ethernet cable from the PLC and the PC shoul d then be able to access the Internet again. Windows 7 Ethernet Configuration 1. Open the Network Window . The first thing you will need to do is open the Network window from the “Start” menu by selecting “N etwork", as shown here: 2. Open Network and Sharing Center : In the Network window, click on the Network and Sharing Center option on the top pane as in the below picture.

88. Chapter 5 Analog I/Os 5-6 Hence, for any reading A = ADC(1), the corresponding X is derived from: X - x1 A - a1 ⎯⎯⎯⎯⎯ = ⎯⎯⎯⎯ x2 - x1 a2 - a1 ==> X = (x2 - x1)*(A - a1)/(a2 - a2) + x1 Note that since x1, x2, a1, and a2 are all constants the actual formula is much simpler then it appears above. E.g. Temperature measurement Temp ADC(n) 30 200 100 3000 So for any ADC readings A, the temperature is: X = 70*(A - 200)/2800 + 30 Note: To get better resolution , you can represent 30 degree as 300 and 100 degree as 1000 so if X = 123 it means 12.3 degree. 5.3 Temperature Measurement Using Analog Inputs 5.3.1 Thermistor Temperature Sensors A thermistor is a kind of resistor whose re sistance decreases when its surrounding temperature increases. It is a very low cost and stable device t hat can be used to measure a wide range of ambient temperature from freezers to hot water boilers , which are commonly used in HVAC applications. In order to convert the resistance changes into voltage readings to be read by the PLC’s analog input, you can use it to form an arm of a voltage divider circuit which would present a variable voltage to the analog input when the temperature changes. A type of t hermistor that measures 10.0K ohm at 25 degree C (simply called 10K thermistor) is especially suit able for use with the EZWire1616 PLC, as illustrated below: For ADC #1 to #8, you only need to connect the 10K thermi stor directly to the anal og input since there is already an internal resistance of 20.00K ohm (0.1% accuracy).

139. Chapter 14 Serial Communications 14-7 treating some serial data as the header of an in coming communication protocol and respond to it automatically. The SETPROTOCOL command can also be used to set the PLC to a specific protocol. This may be desirable if the COMM port has a specific role and you do not want it to enter ot her modes by mistake. Please refer to the TBASIC Programmer’s Reference manual for a detailed description of the SETPROTOCOL command. Note: If you fix a COMM port to a non-native, non-auto m ode, TRiLOGI will not be able to communicate with the PLC anymore. You may have to power-c ycle the PLC to reset the COMM mode. If you use the “1st.Scan” contact to activate the SETPROTOCOL command, then you will need to cycle the power to the PLC with DIP switch #4 set to ON to halt the execution of the SETPROTOCOL command. (Also remember that when the PLC is reset this way, its COMM1 will power up at default format of 38,400, 8,n,1 only so you will need to configure TLServer’s serial port to 38,400bps to communicate with it.) 14.7 Accessing the COMM Ports from within TBASIC Besides responding automatically to specific communica tion protocols described in section 14.5, all three serial ports COMM #1, #2, and #3 are fully accessibl e by the user program using the TBASIC commands: INPUT$, INCOMM, PRINT # and OUTCOMM. It is necessary to understand how these commands interact with the operating system, as follow: When a COMM port receives serial data, the operati ng system of the EZWir e1616 automatically stores them into a 256 bytes circular buffer so that user pr ograms can retrieve them later. The serial data are buffered even if they are incoming commands of one of the supported protocols described in section 14.5. In addition, processing of a recognized protocol command does not remove the characters from the serial buffer queue so these data are still visible to the user’s program. Each COMM port has its own separate 256-byte serial-i n buffer. As long as the user-program retrieves the data before the 256-byte buffer is filled up, no data will be lost. If more than 256 bytes have been stored, the buffer wraps around and the oldest data is ov erwritten first and so on. The following describes how INCOMM and INPUT$, PRINT # and OUTCOMM func tions interact with the serial buffer: a) INCOMM (n) Every execution of the INCOMM(n) function remove s one character from the circular buffer. When no more data is available in the buffer this functi on returns a -1. The data removed by INCOMM will no longer be available for the INPUT$ command. b) INPUT$(n) When the INPUT$(n) function is executed, the CPU checks the COMM #n buffer to see if there is a byte with the value 13 (the ASCII CR character) which ac ts as a terminator for the string. If a string is present, all the characters that make up the string will be removed from the COMM buffer. If a completed string is not present, then the COMM buffer will not be affected, and INPUT$(n) returns a null string. This ensures that before a complete string is received, the serial characters will not be lost because of the unsuccessful execut ion of the INPUT$(n) function. c) INPUT$(n) in Blocking Mode INPUT$(n) is designed to be non-blocking and to return immediately – i.e. either it returns a complete string or it returns an empty string. This means that INPUT$(n) will not suspend the CPU and wait for a valid string from the COMM port. However, in real world communication very often you will need

30. Chapter 2 Ethernet Port 2-2 After you have retrieved the existing parameters from the PLC, you will see that various fields in the configuration software screen are filled up. Note that the EZWire1616 PLC has two built-in “Server” programs that listen on a few different ports on the PLC for incoming TCP/IP request packets: 1) The FServer supports the TRi proprietary pr ograms such as the i-TRiLOGI software and TRi- ExcelLink program. The FServer listens on the default ports 9080 and 9081. Port 9080 is also the default port that i-TRiLOGI uses to connect to TLServer (a PC based server program that is needed for programming the PLCs via RS232 or RS485 serial ports ). One FServer connection is always reserved for port 9081 and the remaining FServer connections are allocated to port 9080. This allows the user to supply multiple c onnections for the webpage control or TRiLOGI or ExcelLink as well as one dedicated connection for maintenance or programming or special user access. 2) A MODBUS/TCP server that listens on port #502 and supports the industry standard MODBUS/TCP protocols. Note: • These two servers share the same Ethernet por t and therefore the same IP address and gateway addresses described in the following sections. • EZWire PLC host both the FServer and Modbus /TCP Server, each providing multiple simultaneous connections to external clients. This means that it is possible to connect multiple TRiLOGI, ExcelLink and Modbus/TCP clients to the PLC, all at the same time! Section 2.1.5 shows you how you can change the maximum number of connections for each server. 2.1.1 IP Address One of the most important parameter s that you must define here is t he “IP Address” field. By default, every F-series PLC is shipped with the static IP address: “192.168.1.5”. You will need to assign the PLC’s with an IP address that is unique on your network and yet is accessible from your PC. If you are on a company network, then you must cons ult your company’s system admin istrator to assign you a useable IP address. However, if your PC is connected to a small loca l area network, then most likely you will have a LAN IP address of 192.168.XXX.YYY. For proper networking, you should set the PLC’s IP address to “192.168.XXX.ZZZ”. i.e. The first three numbers shoul d match each other. The fourth number (ZZZ) should be an IP address that is not used by any other devices on your network. Note that majority of small LANs are built using a network router that a ssigns dynamic IP addresses (called DHCP server) to the PC. You should enter the administrator page of the router and define the range of DHCP for use by the PCs and then you may a ssign the PLC with any IP address that is outside of the DHCP range. E.g. If y ou define the DHCP address range to be 192.168.1.100 to 192.168.1.150, then you may assign the PLC with any IP address between 192.168.1.2 to 192.168.99 (Usually the router itself would have the IP addre ss 192.168.1.1 so that address is not available) and also between 192.168.151 to 192.168.1.254 (again making sure that 192.168.1.254 is not al ready used by your router). DHCP IP Address (* New on Fx and EZWire PLC Only) For the EZWire1616 PLC, if you set the IP address to 0.0.0.0 then the PLC will send DHCP request to the DHCP server to request for an IP address. The DHCP se rver is assumed to have the same IP address as the “Gateway” server. You can find out the IP address assigned to the PL C by sending the command: PRINT #4 “<IP>” and then read the response using INPUT$(4)

31. Chapter 2 Ethernet Port 2-3 (see example in “C:\TRiLOGI\TL7\usr\samples\Et hernet\TestEthernet.PC7” and the address can then be displayed on the PLC’s LCD display using SETLCD command). 2.1.2 GateWay IP Addr The Gateway IP address lets the EZWire1616 communica te with other LAN segments or connect to the Internet. The gateway address is usually the local IP address of the router where the PLC is connected. For small local networks with no plan for connection to the Internet, the Gateway IP Address is not needed and can be set to 0.0.0.0. But if you plan to us e the Fserver’s email capability, or making the PLC connect to an Internet web server, then you mu st fill in the correct Gateway IP Address . Ask your system administrator if you have any question about this. 2.1.3 SMTP Server IP Address The SMTP (Simple Mail Transport Protocol) Server field lets you define the IP addr ess of the email server that the PLC can use to send out emails from user’s program (please see section 2.3.3 for more details on how to program the PLC to send emails). This is t he same SMTP server that your normal email client software such as Thunderbird or MS Outlook uses to send out email. You can ask your Internet Service Provider (ISP) for the IP address of their SMTP server. The ISP usually provides the SMTP server in domain name form (such as “mail.sb cglobal.net”), but you s hould also be able to request the numerical IP address of the SMTP server from the ISP. For Windows XP or Vista users, you can resolve t he IP address as follows: First, launch the “Command Prompt” window. Then enter the command nslookup <s mtpserver name>” to get the IP address. An example is shown below where the IP address of ma il.sbcglobal.net is reso lved to the IP address: “207.115.36.120”: Figure 2.1.3 Windows users may also search the Internet for a free “host.exe” tool that lets you resolve the IP address from a given domain name (one host.exe tool that we found to work was downloaded from http://pigtail.net/LRP/dig/ ). For example, executing the comm and line: “host mail.sbcglobal.net” will resolve its IP address. (Of course you can only use th is smtp server provided your ISP is SBC, almost no SMTP server will relay emails from a client that is not its one of its own subscribers). If you do not plan to use the FServer to send out ema ils yet, then you can leave the default SMTP Server IP Address = 0.0.0.0. You can change t he settings anytime later when you need it.

65. Chapter 2 Ethernet Port 2-37 2.9.4 Troubleshooting FileZilla File Transfer Problems 1) FileZilla appears to have connected to the PL C’s FTP server, but it cannot list the directory or transfer any file to the PLC. The reason almost always have something to do with the PC’s software firewall. You need to configure the Windows Firewall (and any software ant i-virus firewall on your PC) to allow incoming connections to the FileZilla program . You can try to disable the firewall temporarily to test the connection and if does work, you can then be sure that it is the firewall configuration issue that need to be resolved. The following paragraphs explain how the firewall c an affect the FTP communications for those who are interested : The File Transfer Protocol is unique in that it requires two socket connections between two devices that are communicating via FTP. When FileZilla is connected to the PLC’s FTP server on port 21, it establishes a “command” channel and it is thr ough this command channel that FTP commands are being sent. However, once the command channel is established (F ileZilla is “connected” to the FTP Server), a second socket connection (known as the “data c hannel”) needs to be made between FileZilla and the PLC. All data, such as the directory informati on and content of any files to be transferred between FileZilla and the PLC will need to go through the data channel. They are two possible ways of establishing this data channel, one is called the “Act ive Transfer” and the other is known as “Passive Transfer”. FileZilla is able to operate in either transfer mode, but the PLC FTP Server can only operate in “Active Transfer” mode. “Act ive Transfer” mode requires that the c lient (FileZilla) provides a listening socket for the server (PLC) and the se rver (PLC) will then try to connect to this socket to establish the data connection. So if the FileZilla program si ts behind the software firewall and no exception has been configured, then the PLC FTP Server will not be able to make a connection to the FileZilla data socket because it is blocked by the firewall and the connection will therefore fail. This explains why FileZilla seemingly able to connect to the PLC but ye t is unable to send any data or list the directory – because there is no data channel connection for it to do so. However, sometimes the problem could persist after disabling all firewalls and in that case the only option is to revert to an older version of File Zilla, and then transfer the files by doing a right-click download or right-click upload (if drag and drop doesn't work). You can do this as follows : a. Download the FileZilla client version 3.1.5.1 from http://www.oldapps.com/filezilla.php b. Remove the current version and then install version 3.1.5.1 c. Connect to the PLC d. There should be two directories (same as always) : local site (your PC) and remote site (the PLC). You should see your files in the PLC directory. e. Open the folder in the local site t hat you would like to save the files to. f. Right click on a file in the PLC directory such as 0.HTM and select download. You should see the file in the folder on your local site. g. To move files from the PC to the PLC, open t he folder in the local site where the file is located and right click it to select upload. You should see it in the PLC or you will be asked to overwrite it if the sa me file name is there already.

80. Chapter 4 Timers, Counters & Sequencers 4-6 Although a sequencer may go beyond Step 31, if you define a larger SV for it, only the first 32 steps can be used as contacts to the ladder logic. Hence it is necessary to limit the maximum step number to not more than 31. Quite a few of the ladder logic special functions are related to the use of the sequencer. These are described below: 4.4.2 Advance Sequencer - [AVseq] Increment the sequencer's step counter by one until it overflows. This function is identical to (and hence interchangeable with) the [UpCtr] function. 4.4.3 Resetting Sequencer - [RSseq] The sequencer can also be reset to become inactive by the [RSseq] function at any time. Note that a sequencer that is inactive is not the same as sequencer at Step 0, as the former does not activate the SeqN:0 contact. To set the sequencer to st ep 0, use the [StepN] function described next. 4.4.4 Setting Sequencer to Step N - [StepN] In certain applications it may be more convenient to be able to set the sequencer to a known step asynchronously. This function will set the selected s equencer to step #N, regardless of its current step number or logic state. The ability to jump steps is a very powerful feature of the sequencers. 4.4.5 Reversing a Sequencer Although not available as a unique special f unction, a sequencer may be stepped backward (by decrementing its step-counter) us ing the [DNctr] command on the c ounter that has been defined as a sequencer. This is useful for creating a reversible sequencer or for replacing a reversible "drum" controller. 4.4.6 Program Example Assume that we wish to create a running light pattern which turns on the LED of Outputs 1 to 4 one at a time every second in the following order: LED1, LE D2, LED3, LED4, LED4, LED3, LED2, LED1, all LED OFF and then restart the cycle again. This can be eas ily accomplished with the program shown in Figure 4.5. The 1.0s clock pulse bit will advance (increment ) Sequencer #2 by one step every second. Sequencer 2 should be defined with Set Value = 8. Each step of the sequencer is used as a normally open contact to turn on the desired LED for the step. A "Stop" i nput resets the sequencer asynchronously. When the sequencer counts to eight, it will become Step 0. Sinc e none of the LEDs are turned ON by Step 0, all LEDs will be OFF.

143. Chapter 14 Serial Communications 14-11 EZWire1616 Variables Modbus Holding Register (Modicon convention) Modbus Holding Register (Binary address) Timer Present Values 1 to 64 40129 to 40192 128 to 191 Counter Present Values 1 to 64 40257 to 40320 256 to 319 Clock TIME[1] TIME[2] TIME[3] 40513 40514 40515 512 513 514 Date DATE[1] DATE[2] DATE[3] DATE[4] 40517 40518 40519 40520 516 517 518 519 Data Memory DM[1] DM[2] .... DM[4000] 41001 41002 .... 45000 1000 1001 ... 3999 Floating-point Array FP[1] FP[2] ... FP[501] ..... FP[1000] 45001 & 45002 45003 & 45004 ..... 46001 & 46002 .... 46999 & 47000 5000 & 5001 5002 & 5003 ..... 6000 & 6001 .... 6998 & 6999 14.8.1.1 BIT ADDRESS MAPPING All the EZWire1616 I/O bits are mapped identically to both the MODBUS “0x” and 1x space. The bit register offset is shown in the last column of Table 14.1. Although MODBUS names the 0x address space as “Coil (which means output bits) and the “1x” addre ss space as “Input Status” (which means input bits only), the EZWire1616 treat both spaces the same. Some MODBUS drivers only allow you to “read” from 0x space and “write” to 1x space but you st ill use the same offset shown on Table 14.1. Example : To map a lamp symbol to PLC Input 5, you select the MODBUS register addr ess 0-0005. You can also map a lamp symbol to the PLC’s output #2. In that case, you should map it to MODBUS register address 0-0258. To map a toggle switch symbol to the PLC input #5, if you are restricted to select only MODBUS 1x address space, then you will have to map the switch to 1-0005, and likewise you can map the switch to output #2 using MOBDUS address 1-0258. But if the driver allows the switch to be mapped to 0x space, then you can use MODBUS register space 0-0005 and 0-0258 for the mapping, with identical results.

145. Chapter 14 Serial Communications 14-13 l) IR Area WRITE WR Full Support j) HR, AR, LR Area & TC Status WRITE WH, WJ, WL, WG Dummy (always OK) k) DM Area WRITE WD Full Support (from DM0001-DM4000) l) FORCED SET KSCIO KRCIO Full Support for IR Area only Dummy for other areas. m) Registered I/O Read for Channel or Bit QQMR/ QQIR Full Support for IR and DM only Dummy for other areas (always 0000) Some OMRON host link commands are described in Section 16.40 . For other commands please refer to the Omron C20H/C40H PLC Operation manual published by OMRON Corporation. If your purpose is only to use the PLC’s OMRON mode with SCADA or HMI, then there is no need to learn the actual command/response format. 14.8.4 Application Example: Interfacing to SCADA Software SCADA software or MMI systems (also known as LCD Touch Panels) normally use an object-oriented programming method. Graphical objects such as switches indicator lights or meters, etc., are picked from the library and then assigned to a certain I/O or in ternal data address of the PLC. When designing a SCADA system, first you need to define the PLC type. You can choose the MODBUS ASCII, MODBUS RTU or OMRON C20H. Once a graphical object has been created, you will need to edit its connection and at this point you will be presented with a selection table that corresponds to the memory map of that PLC type. Example 1: To connect an indicator lamp to Input #9 of the PLC. You will need to program the switch to connect to IR 00.8 for the OMRON protocol. However, If you have defined the PLC as MODBUS type, then this indica tor lamp should be connected to bit address 1-0265. In either case there is no need to learn about the act ual command format of the protocol itself, as the SCADA software will automatically generate the requir ed commands to access the input address that has been chosen for the object. Example 2: To display readings fr om ADC #3 as a bar graph on SCADA. Since the data from ADC #3 is not directly mapped to MODBUS or OMRON in Table 14.1, you need to add a statement in the custom function that reads ADC #3 and copies it into a data memory, e.g., DM[100] = ADC(3) Now you can program the bar graph on the SCADA scr een to be connected to DM[100] if you use the OMRON protocol. For the MODBUS protocol, t he object should be connected to the address: 4-1100

45. Chapter 2 Ethernet Port 2-17 These “Network Services” or NS in short, can be used to instruct the EZWire1616’s operating system to perform a number of network related functions c lient connection via the Ethernet port. These commands allow the PLC to connect remotely to another PLC in another building or another part of the world via the Internet! This allows peer-to-peer networking, or so-called “M2M” (machine to machine communication) to take place between the PLCs. Notes : 1. In the case of the TLServer, the PLC typi cally communicates with these external hardware or software servers via its COMM1 serial port, and thus TBASIC statements and functions such as PRINT #1, INPUT$(1) and NETCMD$( 1) are used since the NS commands are sent through the serial port #1. 2. Since the Ethernet is already built-in on the EZWire1616, you do not need to send NS commands via any of its serial ports (this also means that no serial port is sacrificed in order to have access to Ethernet communication) . However, to help users of the XServer and TLServer migrate easily to the EZWi re1616 Ethernet port, we implement the NS commands using similar command format as that on the XServer and TLServer. But instead of sending the commands through COMM1, you will interact with the O/S through COMM port #4. Of course, since the EZWire1616 doesn’t have 4 serial ports, COMM port #4 is therefore only a “virtual comm. port” and its creation is merely to simplify implementation of the NS commands. 3. The “TestEthernet.pc6” (download from: http://www.tri-plc.com/trilogi/FPLCsamples.zip ) includes all examples of how to use the NS commands via virtual comm. port #4, which serves as a good starting point for you to lear n these simple but yet powerful methods for making a client connection over the LAN or the Internet. 4. The PLC reserves only a single client socket to implement the Network Services. If you use any of the NS commands listed below, please ensure that the command is completed (so that the client socket can be closed) before issuing a different NS command. All NS commands begin with a string enclosed within the angle bracket called a “tag”, e.g. “<EMAIL>”, “<CONNECT>”. Most NS commands end with a closing tag “</>” except the “< REMOTEFS>” tag, which ends with a “</REMOTEFS>” closing tag. Depending on the command type, the F-series CPU may return one or more response strings via virtual comm. port #4, from which the PLC can read to determine if the NS command has been executed properly. The PLC can operate the Ethernet port by means of TBASIC INPUT$ and PRINT commands operating on COMM 4. It uses the PRINT #4 command to send out NS commands and the INPUT$(4) command to receive response data via the Ethernet port. Notes: 1. Only PRINT #4 and INPUT$(4) are implemented on virtual COMM port #4. The EZWire1616 currently DOES NOT support the INCOMM (4) and OUTCOMM 4 commands. Note that any non -zero ASCII data can be sent using the PRINT #4 command. The following subsections describe the various Netw ork Service commands available to the EZWire1616.

61. Chapter 2 Ethernet Port 2-33 2.9 Installing a Control Web Page Into the EZWire PLC The EZWire PLC web server space can host up to 1.7M bytes of data files which can be HTML, JPG, JS (javascript) files etc. Thanks to its support of t he “web services” commands, a programmer can create its own sophisticated control webpages usi ng only standard HTML and Javascript . TRi has created an example control webpage which can be downloaded from: http://www.tri-plc.com/download/webapp/webapp02.zip When you have successfully unzipped all the files fr om the Webapp02.zip into your hard disk, you will need to transfer the files to the PLC’s web server using a FTP client program. The following sections describe how to use the free FileZilla FTP program to transfer these files and section 2.10 will describe how to customize the control web pages. NOTE: The “M.JS” JavaScript file used with the new preloaded 0.HTM file is no longer provided in the new web app download because it is loaded remotely. In the past, M.JS had been stored inside the PLC and was available directly for editing. However, now t he user modifications in the HTML file are more expanded and in order to save space for additional files as well as protect against accidental modification of the M.JS file, it is now stored outside PLC memory. If you are an experienced web programmer, or you plan to outsource web programming services to customize your PLCs web interface, then you may obtain a copy of this file for more advanced editing by writing to support@triplc.com and providing your purchase refer ences (purchaser’s name, company name, invoice # etc). Of course, you may also like to build your own HT ML and JavaScript/Jquery control structure, which is entirely feasible for any experience web programmer. 2.9.1 Installing the FileZilla program First please download the FileZilla client from: http://filezilla-project.org Once you have gone to the web page from the above link, you will need to select the client version to download. Then you need to select the software versi on for your computers platform, typically the Windows version, and download it to your computer. This is the installation setup file, which you will need to execute after it has downloaded. Please perform a default installation by following the installation steps. 2.9.2 Configure FileZilla to Communicate with the EZWire1616 After installing the FileZilla client, please open it from the start menu or desktop icon and then go to the “File” menu and select “Site Manager”. The following menu will then pop up:

195. Chapter 18 Extended File System 18-7 18.5 Setting Up The FileZilla FTP Server One important capability of the new PLC with r77 firm ware is the ability to upload file created by the PLC to an external server on a local area network or on the Internet via the FTP protocol. If you have access to a FTP username and password on your company’s serv er (or if the SysAdmin is authorized to set up an account for you) you can certainly use your own account for testing. If not, you can download the free Filezilla FTP Server and set it up for testing. The “ExtendedFileSystem.PC6 ” has a FTP upload demo and it was configured to work with a FileZilla FTP server. Using Filezilla has the advantage that you can s ee the login sequence performed by the PLC when it attempts to connect to the FTP Server so that it is easier to troubleshoot connection problem. (For professional grade troubleshooting, one handy program to have is the “Wireshark” program which is a TCP/IP packet sniffer that allows you to look at t he actual TCP/IP packets sent between your PC and the PLC). However, it is important to setup the File zilla server program properly to minimize connection trouble. 18.5.1 Download and Setup FTP Server 1. First download the FileZilla server installer from the following website: http://filezilla-project.org/download.php?type=server 2. Run the “FileZilla Server Interface” program wh ich is meant for managing the FTP Server settings. 3. If the FileZilla Server is running on the same PC that you are running the FileZilla Server Interface program then you can use the localhost IP addre ss which is 127.0.0.1 – the Port can be anything since this is a client port that the Interface program is using to interact with the FTP Server (don’t be confused with the FTP Server listening port which is by default = 21). 4. If this is the first time you run the program after setting up Filezilla FTP Server there will be no Administration password so you can leave it blank. Click OK to connect. 5. Click “Edit->Settings” and then “General Settings -> Welcome message ” – leave only one line of welcome message so that the PLC has less work to do. Then click OK to accept the change.

57. Chapter 2 Ethernet Port 2-29 2.7 Web Service: Accessing PLC's data from MS Excel The FServer provides an extremely useful feature called “Web Service” . You can actually use your web browser to access the EZWire1616 internal data by specifying the following URL: <IP Address: portno of FServer>/HOS TLINK/<Point-to-point hostlink command without “ * ”> E.g. Please enter the following URL in to your web browser URL address space: 192.168.1.5:9080/HOSTLINK/IR You will see the following data appear on your browser screen: IR01 “IR” is one of the many “host link commands” that allo ws a host computer to read or write to the PLC’s internal data space using ASCII strings. This particu lar command “IR” is for reading the PLC’s ID and in this case the PLC returns “01” by default. For more details on the list of host link commands, please refer to Chapter 15 of this manual. Normally the host link commands are sent to the PL C via the serial port (as per all other PLC models produced by TRi). The Fserver, how ever, permits these host link comm ands to be sent using the HTTP protocol, which enables the EZWire1616 to be easily a ccessible by enterprise software using what is known as “Web Query” methods. The enterprise software only needs to k now the format of the host link command required to read the target data and then t hey can use their web query capability to query the PLC and extract the required dat a from the response string. One example, which you can try immediately, is to use the Microsoft Excel 2000 (or later version) spreadsheet program. First, open a blank spreadsheet, then click on the “Data” menu and select “Get External Data” -> New Web Query, as shown below: Figure 2.6.1

71. Chapter 3 I/O and Internal Relays Programming 3-2 3.2.4.2 Example 2 – Creating a Simple Ladder Logic Circuit You can place components in the circuit by clicking in the green area to the right of the red arrow, as shown in Figure 3.2 below. This will bring up the component tool bar in t he gray area above the green circuit area. Figure 3.2: Creating Ladder Circuit Once the component toolbar is shown, you can plac e your input/relay contact by selecting the #1 component from the toolbar and then selecting the digital input from the I/O Table. The contact will then be automatically placed in the ladder logic circuit. The same can be done for the output coil by selecting the #7 component from the toolbar and then selecting an out put that has been entered into the I/O Table. After selecting one input and one output, the ladder logic circuit should like something like Figure 3.3, below: Figure 3.3: Completed Ladder Circuit 3.2.4.3 Example 3 – Creating a Latching Relay Circuit The first part of the circuit follows the same procedur e as the previous example, except that the #7 coil should be a Relay coil. So it should look similar to the circuit in Figure 3.3. The next part requires a parallel contact to be added to the Input1 contact. Th is is done by selecting the Input1 contact (or whichever contact was used) and then adding the #3 contact , as shown in Figure 3.4 below. Figure 3.4: Completed Latching Circuit 3.3 Programming DIO in a Custom Function In order to program digital I/O or anything in a cust om function, a custom func tion must be created in the I/O Table and added in a ladder logic circuit. Custom func tions act the same way as coils in ladder logic, in that that they need a contact to activate them. Once they are activated, the code inside them will execute. To create a custom function circuit, follow these 3 steps:

133. Chapter 14 Serial Communications 14-1 14 SERIAL COMMUNICATIONS 14.1 Introduction: There are 3 serial ports on the EZWire1616, includi ng 1 RS485 port and 2 RS232 ports. All three of these serial ports have full Modbus ASCII/RTU and Host Link Prot ocol drivers so that all three serial ports can be used independently. All three serial ports on this PLC can also be programmed to accept or send ASCII or binary data using the TBASIC built-in comm ands such as INPUT$(n), INCOMM(n), PRINT #n, OUTCOMM n, d. The first serial port (COMM1) is an RS232C port (femal e), which is compatible with most PC’s RS232C ports. The second serial port (COMM2) is also a RS 232C port, same as COMM1 except it uses a male connector. The third serial port (COMM3) is a two- wire RS485 port that allows multiple PLCs to be connected to a single host computer or a master PLC for networking or to implement a distributed control system. Note : Each of the 3 serial ports has its own pair of comm. LED indicators that will light up whenever the corresponding serial channel sends or receives dat a. This makes it extremely convenient for troubleshooting serial communication problems. 14.2 COMM1: RS232C Port with Female DB9 Connector This port is configured as a DCE (Data Communicati on Equipment) and is designed to connect directly to the PC’s serial port without the need for a null modem cable. COMM1 communicates with the host computer at a default baud rate of 38,400 bit-per-second with 8 data bits, 1 stop bit and no parity . The communication baud rate can be changed in software fr om 1200 bps to 115.2K or 230.4K bps, which is compatible with most PCs and industrial equipment. The COMM1 port is the main communication port used by the PLC configuration software (See Chapter 2.1) as well as for program transfer and on-line moni toring of the PLC program when it is not connected to an Ethernet router or hub. The pin connec tions with the host PC are shown below: 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 9 9 Host PC RS232 or USB-RS232 Converter (Male DB9) F2424 COMM1 (Female DB9) Figure 14.1 Connecting COMM1 with PC However, to connect COMM1 to another DCE device (e .g., a modem), you need to make a special cable which swaps the transmit and receive signals, as follows: EZWire1616 COMM1 (Female DB9) Tx Rx Rx Tx Com Com RTS / CTS

83. Chapter 5 Analog I/Os 5-1 5 ANALOG INPUTS AND OUTPUTS 5.1 Analog Power Supply The analog power of the PLC is derived from the sa me 12 to 24VDC power supply as the CPU. It will generate a stable 5V, ( ± 1% accuracy) regulated DC voltage source that will be used internally as voltage reference and is available externally on the middle row of the analog input terminal blocks for use by other analog input devices. The 20mA analog outputs have a 12-24V sensor supply voltage (same as the PLC supply voltage) since they are current source outputs and most current-c ontrolled devices would require 12-24V instead of 5V. The reference volt age outputs are available on the middle row of the analog I/O terminals for each analog I/O point, and may be used as the source voltage for connecting to potentiometers. The 5V reference points total current is limited to 50mA only. Thus if you need more current for your analog device, you will need to supply your own quiet +5V DC source. The analog reference voltage is may be trimmed via a small trimmer pot using a small flathead screwdriver that fit a slot length of 2.5mm and slot width of 0.5mm. Y ou can find such screw driver easily in any hardware store (similar to the following picture). Figure 5.1 Transfer Function for 12-bit ADC

107. Chapter 9 Interrupts 9-1 9 INTERRUPTS 9.1 Input Interrupts During normal PLC ladder program execution, the CPU scans the entire ladder program starting from the first element, progressively solving the logic equation at each circuit until it reaches the last element. After which it will update the physica l Inputs and Outputs (I/O) at the end of the scan. Hence, the location of a logic element within the ladder diagram is impor tant because of this sequential nature of the program execution. When scanning the ladder program, the CPU uses some in ternal memory variables to represent the logic states of the inputs obtained during t he last I/O refresh cycle. Likewise , any changes to the logic state of the outputs are temporarily stored in the output memory variable (not the actual output pin) and will only be updated to the physical output during the next I/O refresh. You can see that the CPU will only notice any change to the input logic state when it has completed the current scan and starts to refresh its input variables. T he input logic state must also persist for at least one scan time to be recognized by the CPU. In some situations this may not be desirable because any response to the event will take at least one scan time or more. An interrupt input, on the other hand, may occur r andomly and the CPU will have to suspend whatever it is doing as soon as it can and start “servicing” the in terrupt. Hence, the CPU responds much faster to an interrupt input. In addition, interrupts are “edge-tri ggered”, meaning that the interrupt condition occurs when the input either changes from ON to OFF or from OFF to ON. Consequently, the input logic state need not persist for longer than the logic scan ti me for it to be recognized by the CPU. The EZWire1616 PLC supports up to 10 interrupt inputs: Any one or all of digital inputs #1 to #6 and #9 to #12 can be defined as interrupt inputs using the INT RDEF statement. The Interrupt inputs may also be defined as either rising-edge triggered (input goes fr om OFF to ON) or falling-edge triggered (input goes from ON to OFF). When the defined edges occur, the defined CusFn will be immediately executed irrespective of the current state of execution of the ladder program. A simple interrupt test function is as follow: Variable A will be incremented on every rising edge sensed on Input #9. Note: Since inputs 1 to 6 can also be used as other special inputs such as High Speed Counter (HSC) inputs and/or Pulse Measurement (PM) as described in Chapter 6, 7 and 8, if these inputs are defined as interrupts using the INTRDEF statemen t, then they will lose their other s pecial function. I.e., they can only be defined either as a HSC/PM or as an interrupt input and not both. Inputs 9 to 12, on the other hand,

76. Chapter 4 Timers, Counters & Sequencers 4-2 4.2 Programming timers and counters on Ladder Logic The timers and counters can be programmed in ladder logic in a few simple steps. 4.2.1 For Timers 1. Edit the label names 2. Place the input contact(s) into the ladder logic circuit 3. Place the timer coil at the end of the ladder logic circuit 4. Place the timer contact in one or more ladder logic circuits 4.2.2 For Counters 1. Edit the label names 2. Place the input contact(s) into the ladder logic circuit 3. Place the counter coil at t he end of the ladder logic circuit 4. Place the counter contact in one or more ladder logic circuits (optional) 4.2.3 Example 1 – Creating a Simp le Timer Circuit in Ladder Logic You can place components in the circuit by clicking in the green area to the right of the red arrow, as shown in Figure 4.1 below. This will bring up the component tool bar in t he gray area above the green circuit area. Figure 4.1: Creating Timer Circuit Once the component toolbar is shown, you can pl ace your activating contact by selecting the #1 component from the toolbar and then selecting the activating contact from the I/O Table. The contact will then be automatically placed in the ladder logic circuit. The same can be done for the timer coil by selecting the #7 co mponent from the toolbar and then selecting a timer that has been entered into the I/O Table. Then a timer contact needs to be added as an input to a ladder logic circuit. This contact will activate once t he timer counts down. This could be used to turn on an output a certain amount of time after the timer coil is activated. Placi ng a timer contact in a circuit is the same as placing any contact in a ladder circuit, ex cept that the corresponding timer s hould be selected from the “Timers” section of the I/O table. After creating a ladder circuit that contains one i nput and one timer output and another ladder circuit that contains one timer contact and one output, the ladder l ogic circuit should like something like Figure 4.2, below:

70. Chapter 3 I/O and Internal Relays Programming 3-1 3 PROGRAMMING I/O AND INTERNAL RELAYS 3.1 Introduction The EZWire1616 will have a certain no. of physica l digital inputs and outputs depending on the particular model, but all will have 512 internal relays available in both ladder logic and BASIC. 3.2 Programming DIO with Ladder Logic The physical I/O and internal relays can be progr ammed in ladder logic in a few simple steps. 3.2.1 For Physical I/O 1. Edit the label names 2. Place the input contact(s) into the ladder logic circuit 3. Place the output coil at the end of the ladder logic circuit 3.2.2 For Internal Relays (Non-Latching) 1. Edit the label names 2. Place the relay contact(s) into the ladder logic circuit 3. Place the relay coil at the end of the ladder logic circuit 3.2.3 For Internal Relays (Latching) 1. Edit the label names 2. Place the activating input/relay c ontact into the ladder logic circuit 3. Place the latching relay in par allel with the activating contact 4. Place the relay coil at the end of the ladder logic circuit 3.2.4 Programming Examples: 3.2.4.1 Example 1 – Editing Label Names The Digital I/O can be named by selecting “I/O Table” from the “Edit” menu and choosing the particular digital I/O that you want to name. In Figure 3.1, physical input #1 is being named “Input1”. Figure 3.1: I/O Table

198. Chapter 18 Extended File System 18-10 1. First open a command prompt window and then type “ telnet 192.168.1.168 21 ” - this will open a telnet connection to the FTP server on our test PC with IP address 192.168.1.168 and listening at port 21. Please replace the IP address with the actual IP address of your PC. The following screen shot captures the test sequenc e. Note that the same command/response sequence with the server is also shown on the FileZilla Server Interface program front panel: USER PLC PASS 1234 2. Once you get the “230 Logged On” message you know that the FTP setup is done correctly. Note that the welcome message from the FTP Server shows only one line “ 220 FileZilla Server Version x.xx ” which is what we have set it up to be. You can now disconnect from the FTP server by typing “Quit” at the command prompt. 3. There is one more things you need to do before y ou proceed to test the FTP upload features of the PLC to avoid connection problem – that is to temporarily TURN OFF the Windows Firewall and any

209. Chapter 19 Using PLC As A Modbus/TCP Gateway 19-1 19 USING PLC AS A MODBUS/TCP GATEWAY 19.1 Introduction An EZWire PLC can be configured to act as the "MODBUS/TCP GATEWAY" for other Modbus serial devices while continue to function as a Super PLC! A Modbus/TCP gateway essentially translates a M odbus/TCP command packet it receives from its Ethernet port into a Modbus RTU serial command and sends it out of its serial port (RS232 or RS485). If the Modbus RTU slave sends back a serial response, t he gateway will in turn translate the RTU response data back to Modbus/TCP response packet and retu rn to the client via the Ethernet port. As such the Modbus/TCP gateway enables any non- Ethernet equipped, both TRi or 3rd party serial Modbus slave device to be directly a ccessible by a Modbus/TCP client via the Ethernet or the Internet. In addition, the user PLC program does not need to handle the gateway function at all as the CPU performs the translation functions automatically and transparently to the PLC’s program. Best of all, while acting as a gateway, the PLC program can simultaneously act as a Modbus master PLC and read/write to any registers in side any of the attached Modbus RT U slave! The CPU firmware automatically schedules the order of the command/response packets whether it is originated from the client or from the PLC itself so that the Modbus/T CP command from the client will be responded to in the correct order and in a timely manner. 19.2 Application Ideas for Modbus/TCP Gateway The Modbus/TCP gateway function can be very useful for many large area control systems, such as a building automation system. A master EZWire PLC is linked to many Modbus RTU slave controllers via RS485 bus distributed across an entire building. The master PLC can perform sophisticated control functions since it has read/write access to ALL the Modbus RTU slaves it connects to. At the same time, a Modbus TCP client software such as a Building Management System (BMS) c an access any registers in the master PLC or ANY of the slave Modbus RTU controller dire ctly via the master PLC acting as a gateway for the slave PLCs. 19.3 Configuring The PLC As Modbus/TCP Gateway The command used to define a serial port to become Modbus/TCP Gateway serial port is as follow: SETSYSTEM 12, n Where n = 1, 2 or 3 for COMM1, COMM2 and COMM3 port. This statement must be run once (could be during start up via 1st.Scan pulse) to configure the serial port #n to be used to send out RTU commands and receiv ed RTU responses. If SETSYSTEM 12,n is not run then the Modbus gateway function will be disabled. Here is how it works: A Modbus/TCP client (suc h as a SCADA, HMI etc) would send a Modbus/TCP request with a specific 8-bit Modbus slav e ID to the gateway PLC. If the ID matches the native ID that is assigned to the gateway PLC then the PLC will reac t normally by sending its own Modbus/TCP response packet back to the client. The PLC will not send any RTU command out of the gateway serial port. This means that the client can access the mast er PLC’s own register as per normal.

186. Chapter 19 Zigbee Communication 17-3 In a commercial light dimmer, a potentiometer is typically used with a capacitor to vary the timing where the TRIAC is allowed to start conducting, as shown in the example circuit in Figure 18.2: Figure 18.2 – Commercial Light Dimmer Circuit 120VAC On the EZWire1616 we will make use of the computat ional power of the CPU to control the firing angle and therefore achieving the same e ffect as light dimmer control. 17.2 Control of 120V/240V AC TRIAC Since 120V/240V AC voltages power most incandescent light bulbs, it is essential to provide galvanic isolation between the AC lamp power and the PLC’s low voltage electronics. What you should use is an opto-isolated TRIAC that can be controlled by a low DC voltage between 3 and 30V. These kinds of TRIACs are commonly known as “Solid State Relay” (SSR), as illustrated in the following diagram: A C120V F-Series PLC Outputs +24V 5 6 7 8 Opto-isolated TRIAC (SSR) Figure 18.3 In the above circuit, if the PLC turns on its output #8, it will provide continuous trigger voltage to the TRIAC gates and therefore the lamp can be switched on at 100% brightness. When the PLC turns off its output #8 the lamp will be turned OFF completely. To achieve light dimming control, the PLC must determine the precise moment that the AC voltage crosses the zero voltage point and the PLC will t hen schedule a time delay and then send a short firing pulse via its digital output to the TRIAC to turn it on fo r the rest of the half cycle. Since the TRIAC will turn itself OFF in the next zero crossing, the PLC must do this repeatedly at every zero crossing in order to maintain the fractional power being applied to the lamp. The EZWire1616 is capable of controlling up to 12 SSR for light dimmer control using its digital outputs #5 to #16. Section 18.4 explains how to use a new i-TRiLOGI function to readily program these light dimmers , Important Note: There are two types of SSR on the market – one type is called “Zero Crossing SSR” which only switches ON when the AC voltage crosse s the zero volt line. Zero crossing type SSR CANNOT be used by the PLC for light dimmer control. Instead you must purchase the “Non-Zero Crossing” type of SSR for this purpose. EZWire1616 PLC Outputs

67. Chapter 2 Ethernet Port 2-39 2.10 Accessing and Customizing the HTML Web Interface for Control and Monitoring The second generation of Web control application is now available free for any TRi PLC user to download and install into their PLC. In the previous section ( 2.9 Installing a Control Web Page Into the EZWire PLC ) you were shown how to transfer html files to the FServer. Click on the following link to download this new web application. http://www.tri-plc.com/download/webapp/webapp02.zip The “Webapp02.zip” file you downloaded above (or in Se ction 2.9) for EZWire PLC contains the following: • Four sample control web pages (0-C001-02.HT M, 0-C002-02.HTM, 0-C002-02-NoLCD.HTM, and 0-C003-02.HTM) • A readme file (Readme.txt) • A download link (UserGuide.htm) for the quickstart modification guide • PLC program files for TRiLOGI 6 and 7 (webA ppTest.PC6 and webAppTest.PC7) that can be loaded in the PLC The user guide describing how you can modify the control webpage can be downloaded directly from: http://www.triplc.com/documents/WebApp_UserGuide.pdf 2.10.1 Next Generation of Super PLC Web Control These web files can be accessed from any standar d web browser that supports AJAX technology (Internet Explorer, Firefox, Chrome, Safari) locally as long as your EZWire PLC is connected to the LAN (local area network) or from anywhere in the world as long as your EZWire PLC is connected to the Internet. Even the iPhone, Android phones, and other smartphones that support AJAX can be used to access these web pages, which means your applicati on can be controlled and monitored from anywhere while on the go. This new version makes use of the newer Jquery UI and no longer utilizes the M.JS JavaScript file. Instead it calls the Jquery file remote ly (no longer stored inside the PLC). Either way, the web files are only accessible fr om standard browsers that support AJAX technology. However, the HTML files are designed to be easily modified by anyone, ev en if you don’t have any programming experience. The purpose is to be able to easily customize the web page layout for your specific application by defining some label names and a background image without having to worry about the programming required to interface to t he PLC, which is already taken care of. The basic HTML file “0.HTM” is the file where si mple modifications can be made. All of the provided HTML files are actually 0.HTM because only the firs t character of the name is used, so 0-C001-02.HTM becomes 0.HTM. The first release of this new Web control applicati on accepts up to: 16 I/O buttons linked to Relay #128 to #144; 16 floating point FP[] variables; 16 DM[] variables , and 8 sliders that can be attached to display and/or control any of the FP[1] to FP[16] or DM[1] to DM[16] variables. Any of these control elements can be selectively displayed and their posit ion, size and color are all user customizable using a simple text editor, with no programming required at all. See below for a screenshot of 0-C001-02.HTM.

104. Chapter 8 Frequency / Speed Measurement 8-2 8.2 Applications 0V T100MD PLC Input #3 Motor NPN type Optical Sensor +24V Figure 8.1 Setting Up a Simple Tachometer or Encoder 8.2.1 Measuring RPM Of A Motor One useful application of the PM capability is to measure the speed of rotation (RPM) of a motor. A simple optical sensor, coupled with a rotating disk with slots fitted to the shaft of a motor (See Figure 8.1) can be fabricated economically. When the motor tu rns, the sensor will generate a series of pulses. The frequency of this pulse train directly measures the rotational speed of the motor (RPM = Frequency x 60) and can be used to provide precise speed control. Note that the above setup can also double as a lo w cost position-feedback encoder when used with the high speed counter, since the number of pulses c ounted can be used to determine the displacement. With the EZWire1616, the pulses can be both counted and measured simultaneously on the same input. 8.2.2 Measuring Transducer with VCO Outputs Some transducers incorporate a Voltage-Controlled-O scillator (VCO) type of out put that represents the measured quantities in terms of varying frequency of the output waveform. Such transducers may be used conveniently by the EZWire1616 using the pulse measurement capability. However, the frequency of such signals should be below the maximum input pulse rate. 8.2.3 Measuring Transducer with PWM Outputs Some transducers may output the readings of their measurands (the quantity that is being measured) in the form of “pulse-width modulated” outputs. This means that the transducer would send rectangular pulses with varying duty cycles that are proportional to the measured quantities. You can then easily use the PULSEWIDTH and PULSEPERIOD functions to com pute the duty cycle of the incoming PWM pulses and readily convert it to the actual units of the measurands. The EZWire1616 PLC should be able to measure with reasonable accuracy the pulse widt h of incoming pulses not exceeding 10KHz. Although the PLC should be able to measure incoming pulse frequency of up to 20KHz, the 100pF noise filtering capacitors used at the digital inputs 1-16 would di stort the signal at high frequency such that the measured pulse width would be of somewhat poor accuracy. EZWire PLC

78. Chapter 4 Timers, Counters & Sequencers 4-4 4.3 Programming timers and counters in Custom Function 4.3.1 Timers and Counters Present Values The present values (PV) of the 64 timers and 64 count ers in the PLC can be acce ssed directly as system variables: timerPV[1] to timerPV[64], for timers' present value ctrPV[1] to ctrPV[64], for counters' present value 4.3.2 Inputs, Outputs, Relays, Timers and Counters Contacts The bit addressable I/Os elements are organized in to 16-bit integer variables TIMERBIT[n] and CTRBIT[n] so that they may be easily accessed from within a CusFn. These I/Os are arranged as shown in the following diagram: 4.3.3 Changing The Timer and Counter Set Values in a Custom Function You can use the SetTimerSV and SetCtrSV functions to change the Set Value (SV) for a timer and counter respectively. An exam ple of this is shown below: SetTimerSV 1,500 ‘Define Timer #1 to have a Set Value of 500 SetCtrSV 10,1000 ‘Define Counter #10 to have a Set Value of 1000 4.3.4 Controlling a Timer or Counter in a Custom Function You can activate a timer or a counter directly from within a custom function simply by assigning their present value counter to a desired value. E.g. To start a 50 seconds timer: TIMERPV[2] = 500 ‘ Timer #2 will time out 50.0 seconds later. E.g. To decrement a counter or a sequencer: CTRPV[10] = CTRPV[10] - 1 ‘ Counter #10 is decremented by 1.

21. Chapter 1 Installation Guide 1-8 power supply since the voltage difference between ON and OFF state is wider for operation at higher voltage. If the actuator loads require higher current (such as driving stepper motors) t hen it is recommended that a separate power supply be used for the output load. Note that if you choose to use two separate power supplies, their 0V terminals should be tied together to provide a common ground reference for the two power supplies. The two power supplies are also recommended to be of the same output volt age. Otherwise, if the voltage of the load power is lower than the voltage of the CPU power, the out put LED will light up even when the output driver is not energized. This is bec ause the current could flow out of the PLC’s output into the (lower voltage) load power supply and therefor e light up the LED. This can be very confusing to users even though it should not dam age the LED. Should this happen, you will need to add a series diode to the output terminal to block the output LED currents from flowi ng through the load and back to the load power. Please use only an industrial grade linear or swit ching regulated power supply from established manufacturers. Using a poorly made switching power supply can give rise to a lot of problems if the noisy high frequency switching signals are not filtered properly. Always place the power supply as close to the PL C as possible and use a separate pair of wires to connect the power to the PLC. Keep the power supply wires as short as possible and avoid running them along side high current cables in the same cable conduit. The EZWire1616 PLC will be reset when the power supply voltage dips below 9V. In a high noi se enviroment you may consider connecting a 470 μ F to 1000 μ F, 50V electrolytic capacitor near the power supply connector to suppress any undesirable voltage glitches from conducting into the PLC. If other high cu rrent devices, such as a frequency inverter, were to affect the operation of the PLC, you should then also connect a diode before the capacitor to prevent reverse current which might flow back to the pow er supply, as shown in the following diagram: +24V DC Power Supply +24V 0V Surge suppressor (Recommended) 1N4007 470uF 50V Figure 1.7 If the AC main is affected by nearby machines draw ing large amounts of current (such as large three- phase motors), you should use a surge-suppressor to prevent any unwanted noise voltage from being coupled into the EZWire1616 power supply. The r equired current rating for the power supply depends mainly on the total output current, taking into c onsideration the peak curr ent demand and the duty cycle of the operation. 1.4 Digital Input Circuits All inputs have green-color LED indicators. All 16 inputs are grouped together into a single row of screwless spring cage terminals. A ll inputs are NPN type, meaning that to turn ON an input, you should connect it to the low-voltage rail (0V terminal) of the I/O terminal block as shown in the following diagram. The input numbers are marked on the PCB below their terminals.

89. Chapter 5 Analog I/Os 5-7 Connecting 10K Thermistor to ADC 1-8 10K Thermistor Analog 0V A/D #1 - #8 +5 V Internal 20.00K Figure 5.6 Note that since the thermistor resistance value vs. temperature change is a non-linear function, you cannot simply use a formula to calculate the temperat ure from the voltage value. For better accuracy you need to use a look up table plus a linear interpol ation technique to determine the temperature based on the ADC readings. The look up table and interpolat ion method can be implemented using TBASIC quite easily. For your convenience, we have provided a sample TBASIC progr am that you can download from the following web page: http://www.tri-plc.com/appnotes/F-ser ies/ThermistorSensorFPLC.zip This example uses the R-T (Resistance-Temperat ure) graph of the Precon Type III thermistor to implement the temperature look up. We have provided an Excel file t hat computes the ADC reading vs ambient temperature for this thermistor type. The TBASIC program uses these ADC readings to determine the temperature. The sample program is structured such that the l ookup table values are stored in the FRAM and you can readily adapt it to other types of thermistors with a different R- T graph. The program only implements lookup for a temperature range of –10 o F to 100 o F, but you can also easily change the temperature range of interest. 5.3.2 Using LM34 Semiconductor Sensor Figure 5.7 The LM34 is a wonderful, low cost semiconduc tor temperature sensor with a range of –50 o F to 300 o F. It is extremely easy to use for measuring temperature above 0 o F. You simply connect one pin to the

52. Chapter 2 Ethernet Port 2-24 EZWire1616 PLC Variables Modbus Holding Register (Modicon convention) Modbus Holding Register (Binary address) Timer Present Values 1 to 64 40129 to 40192 128 to 191 Counter Present Values 1 to 64 40257 to 40320 256 to 319 Clock TIME[1] TIME[2] TIME[3] 40513 40514 40515 512 513 514 Date DATE[1] DATE[2] DATE[3] DATE[4] 40517 40518 40519 40520 516 517 518 519 Data Memory DM[1] DM[2] .... DM[4000] 41001 41002 .... 45000 1000 1001 ... 3999 Floating-point Array (Note: available only on Fx model) FP[1] FP[2] ... FP[501] ..... FP[1000] 45001 & 45002 45003 & 45004 ..... 46001 & 46002 .... 46999 & 47000 5000 & 5001 5002 & 5003 ..... 6000 & 6001 .... 6998 & 6999 2.5.1.2 Word Address Mapping As shown in Table 2.5.1, to access the PLC’s DM[1], you use MODBUS address space 4-1001 (Modicon, use 1000 for binary addressing) and so on. To access t he Real Time Clock Hour data (TIME[1]), use 4- 0513. The I/O channels can also be read or written as 16-bit words by using the addresses from 4-0001 to 4-0320. Some MODBUS drivers (such as National Instrument s “Lookout” software) even allow you to manipulate individual bits within a 16-bit word. So it is also possible to map individual I/O bits to the “4x” address space. E.g. Input bit #1 can be mapped to 4-0001.1 and output bit #2 is mapped to 4-0257.2, etc. This is how it is shown in Table 2.5.1. However, if y ou do not need to manipulate the individual bit, then you simply use the address 4-0001 to access the syst em variable INPUT[1] and address 4-0257 to access the system variable OUTPUT[1]. Note that INPUT[ 1] and OUTPUT[1] are TBASIC system variables and they each contain 16 bits that refl ect the on/off status of the actual physical input and output bits #1 to #16. 2.5.2 MODBUS/TCP Access Security If a EZWire1616 is to be accessible only on the local ar ea network, then the direct connections offered by MODBUS/TCP provide simplicity without time-c onsuming login sequences. As such Modbus/TCP

56. Chapter 2 Ethernet Port 2-28 2.6 Getting data from Internet: C onnecting to The Internet Time Server The EZWire1616 features a special NS command tag <TCPCONNECT xxx.xxx.xxx.xxx: portno> that allows you to connect to any server to download dat a. However, since the PLC does not have a lot of memory for storing incoming text data, it is not suitable for downloading information from a commercial website that sends many kilobytes of data in a single download. It can however, be very useful to connect to some servers that send small amounts of informat ion. For example, there are many Internet Time Servers on the Internet that allow users to synchronize their computer clocks via the Internet. The service responds to time requests from any Internet client in several formats, including the DAYTIME, TIME, and NTP protocols. The simplest are those that send responses in ASCII data and you can extract the date and time information from the response ASCII string once you know the format. You can search on the Internet for a suitable time server and use the TELNET program on your PC to access them to examine their display format. Most timeservers listen either on port 13 or port 123 so you need to specify the port number together with their IP address when s ending the <TCPCONNECT> command. Format: <TCPCONNECT [IP address:por tno] of time server> Response: - none - Successfully connected to the Modbus/TCP server of the specified IP address. ERR:05-Prev Conn.ON Another NS command has been executed and left the client socket opened but did not execute the PRINT #4 “</>” to close the client socket. ERR:04-Not Connected Failed to connect to the targeted server. STATUS(3): This TBASIC function returns 1 if connected, or 0 if connection fails.. Description: Once a connection is made, you can then in teract with the remote server using the PRINT #4 and INPUT$(4) command. You use the INPUT$(4) command to read CR-terminated text strings sent by the server. You can also send data to the remote server using the PRINT #4 command. Example: Please refer to the “fnTCPconn1” cu stom function in the demo program: “TestEthernet.PC6” to see an example of how the PLC can connect to an NIST timer server and use the returned data to update the PLC’s real-time clock. Note : Some NIST time servers have stri ct policy against abuse so you should avoid sending repeated request within a shor t period of time, otherwise further connections may be denied once you are considered to have violated their connection policy.

100. Chapter 7 High Speed Counters 7-1 7 HIGH SPEED COUNTERS Technical Specifications: No. of Channels 3 Maximum acceptable pulse rate 10KHz per channel Quadrature signal decoding Automatic Relevant TBASIC Commands HSCDEF, HSCOFF, HSCPV[ ] 7.1 Introduction Digital inputs #1 + 2, #3 + 4, and #5 + 6 form th ree channels of high speed counter inputs which can interfaced directly to a rotary encoder that produces “quadrature” output s. A quadrature encoder produces two pulse trains at a 90 o phase shift from each other as follows: Direction of Rotation 90 o Phase A Phase B 90 o Direction of Rotation Figure 7.1 When the encoder shaft rotates in one direction, phase A leads phase B by 90 degrees. When the shaft rotates in the opposite direction, phase B will lead phase A by 90 degrees. The quadrature signals therefore provide an indication of the direction of rotation. The EZWire1616 handles the quadrature signals as follows: if the pulse train arriving at input #1 leads the pulse train at input #2, the High Speed Counter (H SC) #1 increments on every pulse. If the pulse train arriving at input #1 lags the pulse trains at input #2, then the HSC #1 decrements. Note that if input #2 is OFF, then pulse trains arriving at input #1 ar e considered to lead the input #2 and HSC #1 will be incremented. Likewise if input #1 is OFF, then pulse trains arriving at input #2 will decrement HSC #1. Inputs #3 and #4 form the inputs for High Speed Counter channel #2 and Inputs #5 and #6 form the inputs for High Speed Counter channel #3. HSC#2 and HSC#3 operate in the same way as HSC#1 described above. The fact that the EZWire1616 automat ically takes care of the direct ion of rotation of the quadrature encoder greatly simplifies the programmer’s task of handling high-speed encoder feedback. The HSCDEF statement can be used to define a CusFn to be executed when the HSC reaches a certain pre- defined value. Within this CusFn you can define t he actions to be taken and define the next CusFn to be executed when the HSC reaches another value. Pl ease note that the HSDDE F statement will also activate the Pulse Measurement hardware as described in the Pulse Measurement section. A programming example of the HSC can be f ound in your iTRiLOGI program folder: C:\TRiLOGI\TL6\usr\samples\HighSpeedCtr.PC6

200. Chapter 18 Extended File System 18-12 18.6 Uploading File From PLC to FileZilla FTP Server Directory 18.6.1 Overview of The FTP Protocol The FTP protocol requires two socket-connections between the devices performing the file transfer. One connection is the “command” channel where FTP comm ands such as STOR or DELE and the responses are sent as plain ASCII text strings between the FTP client and the FTP server. The second connection is the “data” channel where only the file content or the file directory data are being transferred. There are two transfer modes: “Active” mode and “P assive” mode. Active mode requires that the server establish a data connection back to the client. Passive mode on the other hand, requires that the client also be the one to establish the data connection. i. e. For passive mode, both the command and the data connections are performed by the client (the PLC in this case). The PLC has been designed to use only passive mode to transfer file to the FTP server. Passive mode is preferred because that is the only way to transfer file if the FTP Server is located on the Internet. The alternative active mode transfer requires the server to make a data connection back to the PLC that is sitting behind a router firewall, and that can be problemat ic unless the router is specifically configured to forward the data port to the PLC. 18.6.2 PLC FTP Upload Procedure In order to upload file to the FTP Server , the PLC would use the PRINT #4 “<TCPConnect xxx.xxx.xxx.xxx:21>” command tag to connect to the FTP server port 21 to establish the “command” connection to the FTP Server. The PLC uses its PR INT #4 to send and INPUT$(4) to receive ASCII text strings from the FTP server via the command channel. The PLC would then send the command “PASV” to inform the FTP server that it wants to transfer a file in passive mode. At this point you can use the PRINT #4 command to send any valid FTP command to the server, including changing directory (CWD command – make sure the directory exist), deleting a file (DELE command – beware of what you are deleting!) etc. When the PLC is ready to start a file transfer to the FTP server, the server will in turn provide the PLC with the port number that it has opened for the PL C to connect to establish a data connection. Upon receiving this port number the PLC will make a second TCP connection to the given port and then the actual file transfer will begin. A new, network service command tag named “FTP UPLD” handles the negotiation between the FTP Server and the PLC as well as handling of the data transfer from the PLC to the FTP server. The following is the syntax: PRINT #4 “<FTPUPLD Zxxx.yyy [destination file name]>” Where: Zxxx.yyy is the file name of the extended f ile that the PLC has access to. The [destination file name] can be any legal name acceptable to t he server so you can attach a date or time stamp to the file name for easy identifications. When the above <FTPUPLD> command is run, the PLC will send the actual “STOR” command in the background to the FTP server and then obtain the port number from the server and it will then make a data connection to it, and file transfer can then begin.

75. Chapter 4 Timers, Counters & Sequencers 4-1 4 TIMERS, COUNTERS AND SEQUENCERS 4.1 Introduction 4.1.1 Timer Coils A timer is a special kind of relay that, when its coil is energized, must wait for a fixed length of time before closing its contact. The waiting time is dependent on the "Set Value" (SV) of the timer. Once the delay time is up, the timer's N.O. contacts will be closed for as long as its coil remains energized. When the coil is de-energized (i.e. turned OFF), all the timer's N. O. contacts will be opened immediately. However, if the coil is de-energized before the delay time is up, the timer will be reset and its contact will never be closed. When the last aborted timer is re-energiz ed, the delay timing will restart and use the SV of the timer rather than continue from the last aborted timing operation. 4.1.2 Counter Coils A counter is also a special kind of relay that has a programmable Set Value (SV). When a counter coil is energized for the first time after a reset, it will load the value of SV-1 into its count register. From there on, every time the counter coil is energized from OFF to ON, the counter decrements its count register value by 1. Note that the coil must go through an OFF to ON cycle in order to decrement the counter. If the coil remains energized all the time, the counter will not dec rement. Hence, a counter is suitable for counting the number of cycles an operation has gone through. W hen the count register hits zero, all of the counter's N.O. contacts will be tur ned ON. These counter contacts will remain ON regardless of whether the counter's coil is energized or not. To turn OFF t hese contacts, you have to reset the counter using a special counter rese t function [RSctr]. 4.1.3 Sequencers A sequencer is a highly convenient feature for progra mming machines or processes that operate in fixed sequences. These machines operate in a fixed, clearly distinguishable step-by-s tep order, starting from an initial step, progressing to the fi nal step, and then restarting from the initial step again. At any moment, there must be a "step counter" to keep track of t he current step number. Every step of the sequence must be accessible and can be used to trigger some action, su ch as turning on a motor or solenoid valve, etc. As an example, a simple Pick-and-Place machine that can pick up a component from point 'A' to point 'B' may operate as follow: Step # Action 0 Wait for "Start" signal 1 Forward arm at point A 2 Close gripper 3 Retract arm at point A 4 Move arm to point B 5 Forward arm at point B 6 Open gripper 7 Retract arm at point B 8 Move arm to point A

147. Chapter 14 Serial Communications 14-15 14.10 Using Modem to Remotely Program/Monitor The PLC TLServer 3.x supports remote dial up to M-series and F-series PLCs via standard, off-the-shelf modems. It takes two modems to communicate between tw o devices. The host end of the modem setup and configuration is handled by the TLServer software itself, whereas on the PLC side, the PLC has to configure the modem so that it can successfully communicate with the host computer running TRiLOGI. 14.10.1 Wiring The modem is often connected to the PLC’s COMM1 . Since the serial port on most modems are DCE type, you will need a make a special cable (also k nown as null-modem) to connect them as shown in Figure 14.2. If the modem only has a DB25 connector, you can connect the wires as shown in the following diagram: 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 99 20 Modem (Female DB25 ) F1616-BA COMM1 (Female DB9) Figure 14.3 Connecting EZWire1616’s COMM1 to a modem’s DB25 port Note that pin 6 (DSR) and pin 20 (DTR) at the modem end are tied together. This is often required to inform the modem that the device is ready for operat ion so that the modem can work properly. A modem may also be connected to COMM2 or COMM3 for mu lti-drop remote programming and monitoring using TRiLOGI 6 or 7 software. However, you will need to purchase an auto-turnaround type RS232-to-RS485 converter, such as: the “Auto485” ( http://www.tri-plc.com/auto485.htm ). 14.10.2 Programming Please refer to the Internet i-TRiLOGI versi on Programmer’s Reference guide, Chapter 3 for programming details for the PLC to communicate with the PC via modem.

136. Chapter 14 Serial Communications 14-4 * Of course, since the EZWire1616 PLC has a built-i n Ethernet port, you can always program it via the local area network. But the fact that all 3 serial ports can be programming ports makes them truly flexible for many industrial applications. 14.4.2 Accessing 3 rd Party RS485-based Devices There are more and more industrial devices such as electric power meters, analog I/O modules (e.g. the I-70xx modules by ICPDAS), variabl e frequency drives, etc that allows data communication via their RS485 port. The EZWire1616 PLC can use COMM3 port to access these devices. The PLC has many built-in commands for reading/writing to its serial ports, including built-in commands for communicating with devices that use the MODBUS ASCII or RTU protocols. 14.4.3 Interfacing Other Devices to M odbus Host or to the Internet Since the EZWire1616 supports MODBUS protocols, it can operate as a master PLC and serve as a gateway to interface non MODBUS-enabled PLCs (such as the E10+ PLCs, or the I-7000 analog modules) to third party SCADA software or MMI hardware that speaks MODBUS. The EZWire1616 also makes it easy for these devices to be controlled or monitored over the Internet. The master EZWire1616 will use its RS485 port to pull data from these devices into its data-memory. The data memory in the EZWire1616 is in turn accessible by a SCADA program using the Modbus serial or Modbus/TCP protocol. Through the EZWire1616, these other connected devices ar e also accessible from the Internet using the i-TRiLOGI client/server software. 14.4.4 Distributed Control Another important use of the RS485 port will be to connect a EZWire1616 to other F-series, FMD-series, Nano-10, H-series or E10+ PLCs. One EZWire1616 will act as the master and all other PLCs will act as slaves. Each PLC must be given a unique ID. The mast er will send commands to all the slaves using the “NETCMD” or READMODBUS, WRITEMODBUS, R EADMB2, WRITEMB2 statements and coordinate information flow between the PLCs. In this way, a big system can be built by empl oying multiple units of the above-referenced PLCs connected in a network. Th is results in more elegant implementation of complex control systems and simplifies maintenance jobs. 14.5 Changing Baud Rate and Communication Formats: Use of the SETBAUD Statement The EZWire1616 PLC’s COMM ports are highly confi gurable. All 3 COMM ports can be set to a wide range of baud rates. You can also program them to co mmunicate in either 7 or 8 data bits, 1 or 2 stop bits, odd, even or no parity. The baud rate and communica tion formats of the serial ports are set by the following command: SETBAUD ch, baud_no ch represents the COMM port number (1, 2, or 3 only). The baud_no parameter takes a value from 0 - 255 (&H0 to &HFF), which allows for additional configuration of the communication format. The upper 4 bits of baud_no specify the communication format (num ber of data bits, number of stop bits, and parity) and the lower 4 bits represent the baud rate. Hence the baud_no for 8 data bit, 1 stop bit, and no parity is the same as the old models, prov iding compatibility across the PLC families. Once the new baud rate has been set, it will not be changed until execution of another SETBAUD statement. The baud rate is not affected by a software RESET but the settings will be lost when the

33. Chapter 2 Ethernet Port 2-5 router so that different F-series PLCs may be acce ssible from the Internet using the same public IP address of the router but with different port numbers. 2.1.7 Modbus/TCP Secondary Port No. According to MODBUS.ORG specifications, all M odbus/TCP servers must listen on port #502. However, Modbus.org also permits the device to be assigned a different secondary port number. As such, the Modbus/TCP server will always listen on port #502 fo r all of its connections by default. Should you choose to define a secondary port number, then the Modbus/TCP server will only listen on port 502 on one connection while the additional connections (1 to a maximum of 4) would be listening on the secondary port. You may specify any port number between 1024 and 65535 (except for the port number already used by the FServer) to be the secondary port number. Pl ease see the TRiLOGI programmer’s manual for an explanation of the use of the port number. One r eason why you may want to change the port number is to use the “port forwarding” capability of an NAT router so that different F-series PLCs may be accessible from the Internet using the same public IP addre ss of the router but with different port numbers. 2.1.8 LAN Speed You can set the LAN speed of the EZWire1616 to be ei ther 10 Mbps or 100 Mbps (default) per second using this menu option. Most moder n Ethernet switch or router will automatically connect to the PLC using its default LAN speed and there is usually no need for user to configure this option except in very special application where the dev ices are connected via a 10Mbps Ethernet “hub”, which demands all connected device to be set to the same 10Mbps LAN speed. 2.1.9 Node Name You can assign up to 16 ASCII characters (any charac ter) in naming a PLC. The node name is currently not used by the network router so it is merely a convenient name for user to identify a PLC. 2.1.10 Username and Password (FServer only). You can use the username and password feature to prevent unauthorized access to the FServer. It adopts the same proprietary encryption scheme used in the TLServer and TRiLOGI software to encrypt the password transmission. However, unlike the TLServ er that allows you to define unlimited number of usernames and passwords, the FServer only permits a single set of username/password and this is limited to a length of 16 characters. (Although you ma y define the passwords for a USER and a VISITOR privilege). 2.1.11 Use Username/Password (Yes/No)? In applications where there is no danger of unauthoriz ed access to the PLC via FServer, you can elect not to use the username/password. With the “No” opti on selected, the TRiLOGI client can log-in to the FServer using whatever username and password si nce FServer will bypass the username and password authentication and allow the client to log in. 2.1.12 Access Level You can define the access level that the TRiLOGI client is permitted to operate under on the PLC. Three access levels are currently defined: 1 for Progra mmer, 2 for User and 3 for Guest. Please see the i- TRiLOGI Programmer’s Reference manual for the definition of the access levels.

54. Chapter 2 Ethernet Port 2-26 When “MODBUS/TCP Use Trusted IP” is enabled, it means that only TCP/IP packets that come from a client whose IP address matches one of the “T rusted IP” would be allowed connection to the MODBUS/TCP server. 2.5.3 Making a Modbus/TCP Client Conn ection to Other Modbus/TCP Server By using the “Network Services” commands described in Section 2.4, it is unbelievably easy for the EZWire1616 to be used as a MODBUS/TCP client to access any industrial control or HVAC device and sensors that support a MODBUS/TCP se rver. Best of all, you can do it without learning any specifics of TCP/IP programming! To open a client socket and connect to a Modbus/TCP Server that is listening on port 502 (default Modbus/TCP port), you only need to send the command tags <MBTCPCONNECT xxx.xxx.xxx.xxx:502> to the CPU via virtual COMM port #4. E.g. PRINT #4 "<MBTCPCONNECT 192.168.1.105:502>" If connection is successful, the system will return the string “<CONNECTED>” on virtual comm. port #4, which you can check with the INPUT$(4) command. Once the connection is successfully established, you can begin to use the built-in TBASIC commands: READMODBUS, WRITEMODBUS, R EADMB2 and WRITEMB2 operating on virtual comm. port #4 to send MODBUS commands and receive processed respons es from a remote MODBUS/TCP Server!! This greatly simplifies your programming task, since it is very similar to communicating with a Modbus RTU slave that is connected to the seri al port #1, 2, or 3. Although in th is case, the Modbus/TCP device could be located in the other hemisphere and connected via the Internet! The full syntax for the <MBTCP CONNECT> tag is described below: Format: <MBTCPCONNECT [IP address:502] of another Modbus/TCP Server> Response: <CONNECTED> Successfully connected to the Modbus/TCP server of the specified IP address. ERR:05-Prev Conn.ON Another NS command has been executed and left the client socket opened but did not execute the PRINT #4 “</>” to close the client socket. ERR:04-Not Connected Failed to connect to the targeted Modbus/TCP Server STATUS(3): This TBASIC function returns 1 if the Modbus/TCP connection is live and returns 0 if the connection has ended. Y ou can test the connection status to determine if the connection is still alive. Description: This service allows your PLC to l og in to any device that supports a Modbus/TCP server and is connected to t he same LAN or to the Internet. Of course, you may also use it to connect to another F-series PLC on the Internet since every F-series PLC has a MODBUS/TCP server too. Once the connection with the Modbus/TCP server is established, the CPU will return the response string <CONNECTED> to the users program, which can

2. USER MANUAL Page i Copyright Notice & Disclaimer All rights reserved. With the exception of legitimate TRi PLC users, who may print or make copies of this manual for reference purposes, no parts of this manual may be reproduced in any form without the express written permission of TRi. Triangle Research International, Inc. (TRi) makes no representations or warranties with respect to the contents hereof. In addition, information contained herein are subject to change without notice. Every precaution has been taken in the preparation of this manual. Nevertheless, TRi assumes no responsibility for errors or omissions or any damages resulting from the use of the information contained in this publication. Windows is a trademark of Microsoft Inc. MODBUS is a trademark of Mobdus.org All other trademarks belong to their respective owners. Revision Sheet Release No. Date Revision Description Rev. 0 11/15/2014 First Release

27. Chapter 1 Installation Guide 1-14 1.10 CPU Status Indicators There are three LED indicators on SmartTILE-Fx board with the markings shown on the right Run Err. Pause RTC Err. All these indicators will light up for about 0.5 sec onds during power-on. Thereafter they should go off and if any one of them remains lit, it represents the various operating status of the PLC as follows: 1.10.1 RTC Error (Green LED) If this indicator is turned ON, it indicates the PLC’s real-time clock (RTC) has lost track of date and time. The RTC.Err flag in the “Special Bit” menu will also be turned ON. This indicator will be turned OFF automatically after you have set the PLC’s date and time using the “Set PLC’s Real Time Clock” command in the “Controller” pull-down menu. For more information about using the RTC, please refer to Chapter 12 . 1.10.2 Pause (Red LED) This indicator will be turned ON if one of the following has occurred: 1. The PLC’s program is corrupted. 2. A PAUSE statement has been executed 3. The user halts the PLC by pressing the <P> key during On-Line Monitoring. 4. DIP-Switch SW1-4 is tur ned ON, which halts the program. If this light is ON, please connect the host computer running i-TRiLOGI to the PLC and run the “On-Line Monitoring” program. You will be informed of the r eason that caused the PAUSE condition. Except for condition i) and iv), you can release the PLC from the PAUSE state by clicking on the “Pause” button or by pressing the <P> key during “On-Line Monitoring”. If the PLC’s program is corrupted, then you must re-transfer your program to the PLC. 1.10.3 Run Error (Red LED) When this indicator turns ON, it shows that a run- time error has occurred during execution of a TBASIC command. The system will halt at t he CusFn where the error took plac e. If the programmer now executes the “On-Line Monitoring” command in TRiLOGI, the caus e of the run-time error and the CusFn where the error occurred will be reported on TRiLOGI screen. If you have installed an LCD display, the PLC will take over the LCD screen and display the cause of the r untime error and the function where it occurred. The TBASIC simulator captures many possible run-ti me errors including out-of-range values, but in the EZWire1616 PLC, only a few most important run-time errors are reported. The remaining errors are ignored. The following are the few run-time e rrors that will be reported in EZWire1616 PLC: 1. Divide By Zero 2. FOR-NEXT loop with STEP = 0! 3. Call Stack Overflow! Circular CALL suspected! 4. Illegal Opcode - Please inform manufacturer! 5. System Variable Index out-of -range: This is normally caused by using an unavailable subscript. E.g. DM[0], INPUT[-1], DM[5000], etc. Check the subscript value, especially if it contains a variable (e.g. DM[X], if X=0 this will lead to a runtime error). All run-time errors should be identified and corrected before you proceed any further.

156. Chapter 15 Host Link Communication Protocol 15-8 Only the master can issue commands to the slave PLCs. To transmit a command, the master controller must first enable its RS-485 transmitter and then s end a multi-point command to the network of controllers. After the last stop bit has been sent, the master controller must relinquish the RS485 bus by disabling its RS485 transmitter and enabling its receiver. At this point the master will wait for a response from the slave controller that is being addressed. Since the command contains the ID of the target controller, only the controller with the correct ID would respond to the command by sending back a response string. For the network to function properly, it is obvious that no two nodes can have the same ID . You can use the “Setup Serial Port” command in TLServer to set the ID for each EZWire1616. You can also use the "IW” Host Link command to set t he device ID. Also, all nodes must be configured to the same baud rate and communication format. Care should be taken to ensure that the power supplie s for all the controllers are properly isolated from the main so that no large ground potential differenc es exist between any controllers on the network. 15.5.4 Multi-Master RS 485 Networking Fundamentals Since the EZWire1616 is capable of sending out net work commands, the obvious question is whether multiple masters are allowed on the RS485 network? It is possible to have multiple masters on a single RS485 network provided the issues of collision and ar bitration are taken care of. There are several means to achieve these objectives. 15.5.4.1 Multiple Access with Collision Detection There is nothing to stop any PLC from sending out hos t-link commands to other PLCs. However, if more than one PLC simultaneously enables their transmi tters and send out host-link commands, then the signals will conflict and the messages will be garbled up. If the network traffic is low, then the solution may be a matter of having the master check for the correct response after sending out a command string. If there is error in the response string, the master should back off the network for a short while (use different timing for different PLCs) and then re-s end the command until a correct response string is obtained. Fortunately, the “NETCMD$” function of Fx series PLC automatically senses the RS485 lines until they are free before sending out the command string to reduc e the chance of a collision. It also checks the integrity of the response string for correct FCS (Fra me Check Sequence) characters before returning the string (Please refer to the Programmer’s Reference for detail description of the NETCMD$( ) function). However, the program must still check the following item s in the response string to verify that the string returned from NETCMD$( ) function indeed comes fr om the PLC that it had talked to and not from another PLC (which tries to send a command to someone else): i) The ID is correct ii) The header is identical to the command string iii) The length of response string is correct. Pros and Cons: This method does not incur any hardware cost, but it requires careful programming and strict checking of the response string and hence require s more effort to program. It is also the least desirable if the network traffic is moderately high as many collisions will occur and there is danger of some undetected error being allowed to pass through.

50. Chapter 2 Ethernet Port 2-22 2.5 MODBUS/TCP Server and Client Connection The EZWire1616 supports both the FServer and the industry standard MODBUS/TCP server simultaneously. This means that all F-series PLCs are ready to interface directly with many third party industrial control devices that support the MODBUS /TCP protocol. These include the SCADA software, HMI hardware, OPC Server, HVAC controllers and many other industrial control devices. In addition, the EZWire1616 can be used both as a MODBUS/TCP SERVER as well as a MODBUS/TCP CLIENT simultaneously . This means that the EZWire1616 can r eadily read data from any device that has a MODBUS/TCP server, such as: flow meters , AC/DC drives, HVAC elements, RTUs, network sensors etc. It is also possible to perform peer-to-peer networking with other MODBUS/TCP controllers (e.g. another F-series PLC) over a LAN or over the Internet! 2.5.1 Connecting To The PLC’s MODBUS/TCP Server By default, the F-series CPU supports up to 3 simultaneous MODBUS/TCP connections. You can change the number of simultaneous MODBUS/TCP connections fr om 2 to 5 using the “F-series Ethernet Basic Configuration” program as described in Section 2.1. The PLC will listen on the default, well-known MODBUS /TCP port #502 for one or all of the connections. However, it is also possible to define a secondary port number as described in Section 2.1.7 (Note that if you define a secondary port number, then only one of the MODBUS/TCP connection will listen on port #502 and the remaining connections will only be listening on the secondary port number.) If you have a MODBUS/TCP client program (e.g. you can download a trial version of “Modbus Poll” from http://www.modbustools.com for testing), you simply specify t he F-PLC’s IP address and connect to it. Once connected, you will then be able to read from or write to most of the EZWire1616’s internal data from the MODBUS/TCP client. The PLC’s I/O and in ternal variables are mapped to the MODBUS device space according to table 2.5.1. 2.5.1.1 Bit Address Mapping All the F-series I/O bits are mapped identically to bot h the MODBUS “0x” and 1x space. The bit register offset is shown in the last column of Table 2. 5.1. Although MODBUS names the “0x” address space as “Coil” (which means output bits) and the “1x” address space as “Input Status” (which means input bits only), the EZWire1616 treats both spaces the same. So me MODBUS drivers only allow a “read” from 0x space and a “write” to 1x space but you still use the same offset shown on Table 2.5.1. Example: 1. To map an element to the PLC Input 5, you select the MODBUS regi ster address 0-0005. You can also map the element to the PLC’s output #2. In that case, you should map it to MODBUS register address 0-0258. 2. To map an HMI toggle switch symbol to the PLCs input #5, if you are re stricted to select only MODBUS 1x address space, then you will have to map the switch to 1-0005, and, likewise, you can map the switch to output #2 using the MOB DUS address 1-0258. However, if the driver allows the switch to be mapped to the 0x spac e then you can use MODBUS register space 1- 0258 and 0-0258 for the output #2 mapping with identical result.

101. Chapter 7 High Speed Counters 7-2 7.2 Enhanced Quadrature Decoding The default method in which the PLC handles quadr ature signals as described above is somewhat simplistic. It does not take into consideration the “jiggling” effect that occurs when the encoder is positioned at the transition edge of a phase. Mechanical vi bration could cause multiple counts if the rotor shaft “jiggles” at the transition edge of the phase, resu lting in multiple triggering of the counter. This simplistic implementation, however, does have the advantage that the HSC can also be used for single- phase high-speed counting. For the EZWire1616, an enhanced quadrature decoding routi ne is provided which will lock out multiple counting by examining the co-relationship between t he two phases. You can configure the EZWire1616 to use the enhanced quadrature counting by usi ng the SETSYSTEM command, as follows: SETSYTEM 4, n The value of n at bit 0, 1, and 2 respectively defines if the HSC channel 1, 2, and 3 is to run in “Simple” (when the bit is 0) or “Enhanced” (w hen the bit is 1) mode. As such: N (bit 2,1,0) HSC #3 HSC #2 HSC #1 0 (000) Simple Simple Simple 1 (001) Simple Simple Enhanced 2 (010) Simple Enhanced Simple 3 (011) Simple Enhanced Enhanced 4 (100) Enhanced Simple Simple 5 (101) Enhanced Simple Enhanced 6 (110) Enhanced Enhanced Simple 7 (111) Enhanced Enhanced Enhanced 7.3 Interfacing to 5V type Quadrature Encoder If you have a choice, you should select an encoder t hat can produce 12V or 24V output pulses so that they can drive the inputs #1,2,3,4, 5 or 6 directly. If you have a 5V type of encoder only, then you need to add a transistor driver to interface to the PLC’s input s. The simplest way is to use an IC driver ULN2003 connected as shown in Figure 7.2. T100MD1616+ Input #3 1 2 16 15 8 GND Input #4 5V Phase A 5V Phase B +5V 0V Encoder ULN2003A PLC’s 0V terminal Figure 7.2 Interfacing 5V type Rotary Encoder 1.1.1.1 EZWire PLC

47. Chapter 2 Ethernet Port 2-19 or down momentarily when it is needed, and hence complicating the attempt for the PLC to connect to a remote server. Therefore we recommend that you use the <DNS domain > tag to resolve the domain name into IP address first and then use the resulting IP address for all Network Services commands via the Internet. 2.4.3 Send Email Format: <EMAIL [recipient email address]> SENDER: [sender email address] SUBJECT: [whatever text string] [body of the email line 1] [body of the email line 2] ..... </> Response: <OK> Email successfully sent ERR:04-Not Connected Failed to connect to SMTP server (Section 2.1.3) ERR:06-Email Failure Failed to complete email transmission . STATUS(3): This function returns 1 on success and 0 on failure. Note that this function only returns the email status after the closi ng tag </> has been sent. If the function is polled before the last closing tag is sent, the status is indeterminate. Description: You can use this command to send out an email for you at any time. The FServer uses the defined SMTP server and Gateway IP addresses (See Section 2.1) to perform this task. If it encounters any errors, it will send back an error string, which begins with the “ERR:” fo llowed by the reason for the error. Although the sender’s email address does not have to be a valid email address, it is good to at least use a valid domai n name as the sender address. Otherwise the SMTP server may refuse to send the email because it may deduce that an email with an invalid domain name is likely to be a Spam mail. Example: Please refer to the fnEmail function in the “TestEthernet.PC6” file.

72. Chapter 3 I/O and Internal Relays Programming 3-3 1. Edit the name of the custom function in the I/O Table 2. Place the activating contact in the ladder logic circuit 3. Place the custom functi on at the end of the circuit 3.3.1 Editing Label Names: This is the same as for the digital I/O, except that the I/O table window needs to be scrolled to the custom function area for editing custom function names. Placing the custom function in the circuit is done t he same way as other ladder logic contacts and coils, by selecting the and then choosing the Differential cust om function {dCusF} from the pop-up window . The circuit should look something like below: Figure 3.5: Circuit with custom function {dCusF} 3.3.2 Controlling I/O from Custom Functions: An empty custom function looks like this: TBASIC code is entered into the custom function, which a llows the possibility of total control of all of the PLCs functions and hardware. There are 7 TBASIC functions available to control all of the digital I/O, which are: 1. SETIO labelname 2. CLRIO labelname 3. TOGGLEIO labelname 4. TESTIO ( labelname ) 5. SETBIT v,n 6. CLRBIT v, n 7. TESTBIT ( v, n ) Each function has its own advantage depending on what needs to be done to a digital I/O. Each of these functions is explained in the programmer’s refer ence manual, which should be referred to for further information. Here are some examples of how to control digital I/O using these functions.

182. Chapter 17 IR Remote Control 16-23 You now can enter the complete command string as “ @01RI0258* ” and it will be accepted by TLServer. (Note: If the PLC has executed a SETPROTOCOL n ,5 to configure its serial port into pure native mode, then wildcard FCS will not be accepted and you must use the actual FCS with your command. The FCS button makes it much easier than computation by hand). If you have changed some data using the write command, then activate On-Line Monitoring and examine the changes made using the “View Variables” window. 16.50 Visual Basic Sample Program To help users get started writing their own Visual Ba sic program to communicate with the PLC, we have created a sample Visual Basic program with full s ource code listing. Please visit the following web page to download the visual basic sample program. http://www.tri-plc.com/applications/VBsample.htm 16.51 Inter-PLC Networking Using NETCMD$ Command All Fx PLCs are able to send out host link commands to other Fx PLCs, M-series or H-series PLCs using the built-in TBASIC function NETCMD$() . This function accepts host link commands in multi-point format and automatically computes the Frame Check Sequence (FCS) characters, appends them to the command string and sends out the whole command string together with the terminators. The function then waits for a response string and checks the integrity of the received response string for errors. This

24. Chapter 1 Installation Guide 1-11 All digital outputs are directly programmable in Ladder Logic as well as in TBASIC custom functions. Some programming examples are detailed in “Chapter 3 –Digital I/Os and Internal Relays” 1.5.3 Inductive Load When switching inductive loads such as a solenoid or a motor, always ensure that a bypass diode is connected to absorb inductive kicks, which will occur w henever the output driver is turned OFF. User will be glad to know that every digital output on the EZ Wire1616 PLC already incorporate a flyback protection diode to protect the driver. The Diodes are internally connected to the +24V power terminal as shown in the following diagram: +24V Diode's reverse break down voltage should be at least 2 x load voltage Inductive bypass diode (DC only) (a) PLC NPN Di g ital Out p ut Figure 1.7 – Protecting Solid State Output Against Inductive Kick. 1.6 LCD Display Port The EZWire1616 PLC does not have a LCD port built in like some other Super PLC boards. This in order to save space since this board is ty pically installed in industrial contro l panels that either incorporate HMIs or have no display/interface. 1.6.1 Programming The LCD Display Even though the EZWire1616 can't output to a physical display, it can still use the built in TBASIC commands to output text and data to a virtual display such as online monitoring or the web interface. Some programming examples for the LCD display are presented in Chapter 13 . 1.7 Program and Data Memory 1.7.1 Program Memory The EZWire1616 has by default 23.5K words (16-bit) of program memory stored in the CPU Flash memory area. Each ladder logic element (contacts or coils) takes up 1 word of memory. A TBASIC statement or function takes up half a word to four or five words, depending on the number of param eters the statement or function has. The program memory can be erased and reprogra mmed more than one hundred thousand times, which is a limit that you are unlikely to ever reach.

48. Chapter 2 Ethernet Port 2-20 2.4.4 Open Connection to Remote FServer or TLServer to Use NETCMD$ Format: <CONNECT [IP address:port of TLServer or XServer]> [username string] [password string] Response: <CONNECTED> Successfully connected to remote FServer, TLServer or XServer at the IP address. ERR:05-Prev Conn.ON Another NS command has been executed and left the client socket opened but did not execute the PRINT #4 “</>” to close the client socket. ERR:04-Not Connected Failed to connect to remote Fserver or TLServer. STATUS(3): This TBASIC function returns 1 if the c onnection is active and returns 0 if the connection has ended. You can test the c onnection status to determine if the connection is still alive. Description: This service allows your PLC to log in to another TRi Super PLC such as another Fx, FMD or Nano-10 PLC connected via TLServer through the Internet. You execute this command by first sending the string “ <CONNECT xxx.xxx.xxx.xxx:9080 >” using the PRINT #4 command, where xxx.xxx.xxx.xxx is the IP address of the remote FServe r or TLServer, followed by sending the username and password needed to log in to the remote server. Each line should be terminated with a CR (carriage return) character. (The PRINT #4 command automatically appends the CR character). Once a connection with the remote server is established, the CPU will return the response string <CONNECTED> to the user program, which can read it using the INPUT$(4) function. The ST ATUS(3) function can also be used to test if the connection is successful and alive. When the program gets the confirmation of connection, it can then use the TBASIC “NETCMD$(4, x$)” command to read or write data to the remote PLCs as if the remote PLC is locally connected to COMM4 port of th is PLC, as shown in the following example: A$ = NETCMD$(4, “@01RI00”) Multiple NETCMD$ commands can be ex ecuted as long as the connection is alive. You can test the connection stat us by checking the result of the STATUS(3) function. Once all the command exchanges have been completed, you should send a </> tag to close the client connection to t he remote server so that other NS commands can be executed in ot her parts of the program. Example: Please refer to the “fnConnect” and “fnN etCmd” custom functions in the demo program: “TestEthernet.PC6”.

157. Chapter 15 Host Link Communication Protocol 15-9 15.5.4.2 Token Awarding Scheme A “token” is a software means of telling a PLC that it has been given the right to temporarily act as the master. An EZWire PLC or a host PC can serve as the token master. An internal relay bit or a variable of the PLC can be defined as the token. The token master will begin by giving the token (i.e., by setting the token relay bit to ‘1’ or the token variable to some fixed value) to the first PLC on the list. The PLC that has the token can then send host-link commands to other PLCs. When it has finished the job it can then send a command to the token master to relinquish it s token. If it is based on a fixed timing scheme the master can assume that the PLC will complete its job after a fixed time (say 0.1 seconds) and turn off its corresponding token relay bit. The token master then passes the token to the nex t PLC on the list and so on until the last PLC has relinquished its token, and the token is passed back to the first PLC on the list again. This way at any one time there will only be one active network master (t he one with the token) and hence there is no danger of conflicting signals or garbled messages to handle. Pros and Cons : This method also does not incur any hardware cost, but it requires the programmer to draw up a plan on what internal relay or variable to use as the token and how the PLC can relinquish its token to the token master. (It could be by fixed timing or by returning a message to relinquish the token) It is a challenging job for programmers unfamiliar with networking schemes, but with some experimentation it can be achieved readily. 15.5.4.3 Rotating Master Signal In this scheme we make use of the digital inputs of t he Fx PLCs to grant the PLC the right to act as the network master. Lets call this input the “Be the Ma ster” input. We can use a low cost H-series PLC running a sequencer to activate the “Be the Master” input line of each PLC one at a time. Each PLC is given a fixed amount of time to be the master (e.g. 0.1s each). Only when the “Be the Master” input is ON can the EZWire PLC start sending out host-link co mmands to other PLCs. So at any one time there will only be one master on the network and no conflict will occur as a result. Pros and Cons: This method is the easiest to program sinc e there is no need to handle the token with the token master or perform extensive error check on the response string. However, this method uses one input of each PLC and as many output s on the master-signal generator PLC as there are PLC masters. It also requires wiring the PLCs to the master-signal generator PLC. 15.5.5 TROUBLE-SHOOTING AN RS485 NETWORK 1) Single faulty device If a single device on the RS485 network becomes inaccessi ble, problems can be isolated to this particular device. Check for loose or broken wiring or wrong DIP switch settings. Also double check the device ID using the host-link command " IR* " sent via the RS232C port of the PLC. If all attempts fail, either replace the entire PLC or the SN75176 chip that handles the RS485 interfacing and try again. 2) Multiple faulty devices If all the PLCs are inaccessible by the host com puter, it may possibly be due to a faulty RS232C-to- RS485 converter at the PC. If this is the case, disconnect the RS485 converter from the network and check it using a single PLC. Replace the converter if it is confirmed to be faulty. Next check the wire from the converter to the beginning of the network. A brok en wire here can lead to the failure of the entire network. Since an RS485 network links many PLCs together elec trically and in a daisy chain fashion, problems occurring along the RS485 network sometimes affect t he operation of the entire network. For example, a

110. Chapter 10 Stepper Motor Control 10-1 10 STEPPER MOTOR CONTROL 10.1 Technical Specifications: No. of Channels (control signal) 3 No. of Channels (full driver) 3 Max. Pulse Rate (pps) 10000 (single channel running) Continuous Current per phase 1A @24V DC Peak Current per phase 4A @24V DC Driver Breakdown Voltage +55V Velocity Profile (Defined by STEPSPEED) Trapezoidal -accelerate from 1/8 max pps to max pps. -decelerate from max pps to 1/8 max pps) Maximum number of steps 2 ~ 2 31 (= 2.1 x 10 9 ) TBASIC commands STEPSPEED, STEPM OVEABS, STEPCOUNTABS( ), STEPMOVE, STEPSTOP, STEPCOUNT( ) It is essential to understand the difference between a stepper motor “Controller” and a stepper motor “Driver”. A stepper motor “Driver” comprises the power electronics circuitry that provides the voltage, current, and phase rotation to the stepper motor coils. Unlike the FMD PLCs, the EZWire1616 have both the st epper motor driver and controller hardware. Now a stepper motor can be driven directly from the PLC or the PLC can simply supply the control signals to an external stepper motor driver. 10.2 Stepper Motor Driver The EZWire1616 can drive up to 3 stepper motors direct ly, using digital outputs #5 to #16. Each stepper motor requires 4 digital outputs so a total of 12 digi tal outputs are required to drive 3 stepper motors. All these outputs are capable of driving stepper motors of up to 1A per phase continuous. Note that any outputs that have been defined for use with a particu lar stepper channel would no longer be available as regular digital outputs in the ladder or TBASIC program. Please refer to Chapter 6 for a definition of the list of special digital I/Os. 10.2.1 Stepper Motor Wiring Types 12 3 4 12 3 4 5 12 3 4 5 6 4-wire (Bipolar driver) 5-wire (Unipolar or bipolar driver) 6-wire (Unipolar or bipolar driver) Figure 10.1

201. Chapter 18 Extended File System 18-13 18.6.3 Monitoring The FTP Upload Progress Once the file transfer begins the PLC firmware will handle the rest of the file trans fer until either the file has been completely transferred or the transfer is abor ted due to a network or server trouble. You can monitor the progress of the file transfer using either the STATUS(4) or STATUS(20) functions. STATUS(4)= 0 : FTP client was idle or last FTP failed 1 : FTP data transfer just started 2 : 1st FTP segment transferred, now transferring the rest 3 : FTP data transfer completed. STATUS(20) > 0 : Number of bytes uploaded to FTP Server. Transfer is in progress. < 0 : Total number of bytes uploaded. Transfer completed. For example, If 2,345 bytes has been uploaded to the server and the transfer has ended, STATUS(20) will return the number = –2345. Since file transfer can take substantial amount of time to complete, it is not wise to run a loop to wait for the file transfer to complete since this will block the PLC from processing any other part of the program. The demo “ExtendedFileSystem.PC6” s hows you how to setup a monitoring function to periodically monitor the progress of the file transfer and r eport the transfer status on the LCD display. Please refer to the comments in the custom function “fnConnFTP” and “fnMonFTP” of the “ExtendedFileSystem.PC6” program for more detailed descriptions of each command involved in the FTP file transfer. 18.7 Setting Up A FTP Server Behind a Windows Firewall. Please refer to the following Microsoft document descr ibing issues and solutions related to FTP server behind the Windows Firewall. http://technet.microsoft.com/en- us/library/dd421710(WS.10).aspx Microsoft focuses mainly on the FTP server in their IIS server (for obvious reasons) instead of Filezilla. If you are setting Filezilla as a permanent FTP server behind a software firewall you can try to make the following configuration setup: 1) You must specifically setup a range of port num ber for Passive mode use. These are the port number that Filezilla will assign to the PLC to make a data channel connection when it attempts to transfer a file using passive mode. The following is an example w here two port numbers are assigned so that two PLCs may connect to the Filezilla simultaneously. You can add a larger port range if more PLCs may connect to the FTP Server simultaneously.

187. Chapter 19 Zigbee Communication 17-4 17.3 Zero-crossing Detection As explained in 18.2, the EZWire1616 CPU must know the precise moment the zero crossing occurs so that it can schedule the time interval when it needs to send out the firing pulse to turn on the SSR. This can be accomplished by feeding the AC power through a bi-directional opto-isolator and the output would drive input #6 of the EZWire1616 PLC. The falling edge of the signal detected at input #6 would send an interrupt to the CPU to start the scheduling of the various time slots that each light dimmer output is to fire a triggering pulse. This means that if you want to us e the light dimmer control, you must configure input #6 as an interrupt input for capturing the zero crossing signal and therefore input #6 will no longer be available for other functions (such as for HSC or Pulse Measurement) Note that since all EZWire1616 inputs are 24V NP N only, you will need to construct the following interface circuits to feed the AC signal into the PLC’s input #6: # 8 H1 1AA 81 4 Input # 6 ~ A C24V 2.2K EZWire1 616 PL C PL C’s 0V #7 Figure 18.4 The above shows the wiring diagram of using an external opto-isolator to provide the zero-crossing signal to the PLC’s NPN input #6. 17.4 Programming Light Dimmer Control 17.4.1 Enable Zero-Crossing Interrupt Before programming any of the light dimmer c hannels, you first need to enable the zero-crossing interrupts for the zero-crossing signal fed into i nput #6. This is accomplished using the following command: SETSYSTEM 22,1 ‘ Enable zero crossing interrupt 17.4.2 Programming Indi vidual Dimmer Channel You can program up to 12 of the EZWire1616 PLC’s out puts #5 to #16 to control SSR for dimmer control purposes using the SETDIMMER command (available only on i-TRiLOGI version 6.23 onwards). The syntax is as follows:

204. Chapter 18 Extended File System 18-16 There are two transfer modes: “Active” mode and “P assive” mode. Active mode requires that the server establish a data connection back to the client. Passive mode on the other hand, requires that the client also be the one to establish the data connection. i. e. For passive mode, both the command and the data connections are performed by the client (the PLC in this case). The PLC has been designed to use only passive mode to transfer file to the FTP server. Passive mode is preferred because that is the only way to transfer file if the FTP Server is located on the Internet. The alternative active mode transfer requires the server to make a data connection back to the PLC that is sitting behind a router firewall, and that can be problematic unless the router is specifically configured to forward the data port to the PLC. 18.8.2 PLC FTP Upload Procedure In order to upload file to the FTP Server , the PLC would use the PRINT #4 “<TCPConnect xxx.xxx.xxx.xxx:21>” command tag to connect to the FTP server port 21 to establish the “command” connection to the FTP Server. The PLC uses its PR INT #4 to send and INPUT$(4) to receive ASCII text strings from the FTP server via the command channel. The PLC would then send the command “PASV” to inform the FTP server that it wants to transfer a file in passive mode. At this point you can use the PRINT #4 command to send any valid FTP command to the server, including changing directory (CWD command – make sure the directory exist), deleting a file (DELE command – beware of what you are deleting!) etc. When the PLC is ready to start a file transfer to the FTP server, the server will in turn provide the PLC with the port number that it has opened for the PL C to connect to establish a data connection. Upon receiving this port number the PLC will make a second TCP connection to the given port and then the actual file transfer will begin. A new, network service command tag named “FTP UPLD” handles the negotiation between the FTP Server and the PLC as well as handling of the data transfer from the PLC to the FTP server. The following is the syntax: PRINT #4 “<FTPUPLD Zxxx.yyy [destination file name]>” Where: Zxxx.yyy is the file name of the extended f ile that the PLC has access to. The [destination file name] can be any legal name acceptable to t he server so you can attach a date or time stamp to the file name for easy identifications. When the above <FTPUPLD> command is run, the PLC will send the actual “STOR” command in the background to the FTP server and then obtain the port number from the server and it will then make a data connection to it, and file transfer can then begin. 18.8.3 Monitoring The FTP Upload Progress Once the file transfer begins the PLC firmware will handle the rest of the file trans fer until either the file has been completely transferred or the transfer is abor ted due to a network or server trouble. You can monitor the progress of the file transfer using either the STATUS(4) or STATUS(20) functions. STATUS(4)= 0 : FTP client was idle or last FTP failed 1 : FTP data transfer just started 2 : 1st FTP segment transferred, now transferring the rest 3 : FTP data transfer completed.

181. Chapter 17 IR Remote Control 16-22 Response Format @ d d W D s s f f * Device ID Header Status FCS 00 – OK E.g. To Write to DM#1200 to #1201 using this command, send: “ @01WD1200xxxxyyyyff* ” where xxxx and yyyy are the values to be written to DM[1200] & DM[1201]. 16.49 Testing of Host Link Commands You can try out all the Host-Link commands using TL Server’s “Serial Communication Setup”. However, TLServer is designed to accept only multi- point protocol commands except the “IR * ” command (which is necessary to obtain the device ID from the PLC). You, therefore, have to enter all your host link commands in multi-point format. Since the multi-point protocol requires a FCS (f rame check sequence) character to be appended to the end of the command string, you may be able to get around it by using the “wildcard” FCS “00” in place of the actual FCS. E.g. To read input channel 02 fr om a PLC with ID = 01, you can enter the command string as “ @01RI0200* ”. For TLServer version 2.1 and above, there is an “FCS” button that lets you compute the actual FCS for the string in the command string text field. You can then use the actual FCS with the command string to completely test your command. E.g. If you type in the string “ @01RI02 ” in the command string (but do not press Enter) and then click on the “FCS” button, the FCS for this string will be computed and shown as “FCS = 58”, as shown in the following figure:

149. Chapter 15 Host Link Communication Protocol 15-1 15 HOST LINK PROTOCOL INTRODUCTION While a EZWire1616 is running, it may receive ASCII st ring commands that read or write to its inputs, outputs, relays, timers, counters, and all the internal variables from a host computer or another F-series, FMD or Nano-10 PLC. These ASCII commands are k nown as the "Host-link commands" and are to be serially transmitted (via RS232C or RS485 port) to and from the controller. The default serial port settings of the EZWire1616 for host-link communication are: 38400 baud, 8 data bit, 1 stop bit, no parity . The baud rate and the communication format may be changed using the “SetBAUD” TBASIC command described in the i-TRiLOGI Programmer’s Reference. 15.1 Multiple Communication Protocols The EZWire1616 supports many different communica tion protocols to allow maximum application flexibility. In addition to its own native set of co mmunication protocols, the EZWire1616 also understands and speaks the following protocols: a) *MODBUS ™ ASCII mode compatible communication protocol. b) *MODBUS ™ RTU mode compatible communication protocol. c) *OMRON ™ Host Link Commands for the C20H PLC family. *Note: all trademarks belong to their respective owners. The native host link command protocol will be descri bed in detail in this and the next chapter. The MODBUS and OMRON compatible protocols hav e already been discussed in Section 14.7. 15.2 Native Mode Communication Protocols When the EZWire1616 receives a native host-link command via COMM1, COMM2 or COMM3, it will automatically send a response string corresponding to the command. This operation is totally transparent to the user and does not need to be handled by the user’s program. All EZWire1616 support both the point-to-point (one-to-one) and multi-point (one-to-many) communication protocols. Each protocol has a different command structure as described below. 15.3 Point-To-Point Communication Format In a point-to-point communication system, the host co mputer's RS232C serial port is connected to the PLC’s COMM1. At any one time, only one controller may be connected to the host computer. The host- link commands do not need to specify any controller ID code and are therefore of a simpler format, as shown below:

150. Chapter 15 Host Link Communication Protocol 15-2 15.3.1 Command/Response Frame Format (Point to Point) x x .... .... .... * Header Data Terminator Each command frame starts with a two-byte ASCII character header, followed by a number of ASCII data and ends with a terminator which is comprised of a ' * ' character and a carriage return (ASCII value = 13 10 ). The header denotes the purpose of the command. Fo r example, RI for Read Input, WO for Write Output, etc. The data is usually the hexadecimal repres entation of numeric data. Each byte of binary data is represented by two ASCII characters (00 to FF). To begin a communication session, the host computer mu st first send one byte of ASCII character: Ctrl-E (=05Hex) via its serial port to the controller. This in forms the controller that the host computer wishes to send a (point-to-point) host-link command to it. Therea fter, the host computer must wait to receive an echo of the Ctrl-E character from the controller. Reception of the ec hoed Ctrl-E character indicates that the controller is ready to respond to the command fr om the host computer. At this moment, the host computer must immediately send the command frame to the controller and then wait to receive the response frame from the controller. The entire communi cation session is depicted in Figure 15.1. After the controller has received t he command, it will send a response frame back to the host computer and this completes the communication session. If t he controller accepts the command, the response frame will start with the same header as the command, followed by the information that has been requested by the command and the terminator. As you can probably see, proper hands haking using the Ctrl-E character between the host and the PLC is important to communicate successfully using the Point-to-point protocol. Although the “Multi-point” format discussed in the nex t section seems more complex, the communication exchange using multi-point protocol is actually simple r than point-to-point since it involves only a single exchange of command/response string. We therefore recommend using the multi-point format if you are writing your own communication program. Note: TBASIC has a built-in command “NETCMD$” t hat lets a EZWire1616 access another slave PLC using the multipoint Host-link protocol format very easily. If an unknown command is received or if the command is illegal (such as access to an unavailable output or relay channel), the following error response will be received: 15.3.2 Error Response Format E R * The host computer program should always check the re turned response for possibilities of errors in the command and take necessary actions.

131. Chapter 13 LCD Display Programming 13-2 Pressure = 98345 What happens is that the string “ Pressure = 983 ” is correctly displayed but the two old characters “45” left over from previous display would appear to be par t of the new data. This can cause confusion. There are several ways you can eliminate such a display problem: 1) Clear the line first before overwriting with a new st ring. You can create a custom function just to clear a particular line. E.g. if you pa ss the parameter DM[100] to the cu stom function and inside the custom function you do the following: SETLCD DM[100],1, “ ” Hence calling this custom function with DM[100] = 1,2,3, or 4 would clear the corresponding line. 2) A “ quick and lazy” way to do it is to add a few more characters to the back of the string to be displayed which will wipe out old characters that could be present adjacent to the new string. E.g. SETLCD 1,1, “ Money = $ ” + STR$(D) + “ ” 3) If there is data to the right of the currently disp layed string that you cannot overwrite with spaces, then you can restrict the number of di gits that a numeric variable may be converted to using the two parameters from the STR$ or HEX$ command. E.g SETLCD 1,1, “ Temp = ” + STR$(T,4) The STR$(T,4) function will always return 4 digits of the data stored in T. If T is less than 4 digits, then one or more preceding “0”’s will be added. E.g. if T = 12 then this function will return the string “0012. Note that for negative number s the negative sign is counted as par t of the digit count so you need to provide enough spaces to take care of the sign if you need to handle both positive and negative numbers. 13.4 Displaying Floating-point The STR$(x#) and STR$(x#,n) can convert a floati ng point number x# into a text string which can therefore be displayed immediately using the SETL CD command. Please refer to the STR$() command in the TL7 Programmer’s Reference guide for details. If you wish to control the number of digit being displayed then you could use the MID$ command to extract the number of significant digits and the exponents from the string re turned by STR$(x#, n) function.

192. Chapter 18 Extended File System 18-4 4. The next 400 files can only use the file name “Zxxx.yyy”. wher e the xxx part of the filename is a 3 digit decimal number which can be any number fr om 000 to 399. The yyy part is an extension and the same as what’s described in (2) above. 5. “Z000.yyy” occupies the 36 th slot, “Z001.yyy” occupies the 37 th slot .., and the file “Z399.yyy” occupies the last 4K slot. 6. Any file may occupy more than 1 slot so you can specify “0.yyy” to occupy the entire 1740K bytes of the file space. Or you can configure “Z 000.yyy” to occupy 20K (=5 slots) from the 36 th slot, and the next valid file should only start from Z005.yyy. i. e. If you want to allocate 20K bytes of file space to file Z000.yyy you cannot use any f ile name Z001, Z002, Z003 and Z004, otherwise these file will corrupt the file space of Z000.yyy. 7. This means that the programmer will have to des ign the file space carefully and determine how to best use the file structure to provide the ri ght balance between the number of data files and the amount of data space allocated to each data file. Note : The file name restriction only applies to files stored on the PLC’s internal file space. When you use the FTP upload function described later, you can specify any destination filename as long as they are acceptable to the external FTP server. 18.3 Transferring Files To The PLC’s Web Server If you are only using the extended file space for t he purpose of storing additional web pages on the built- in web server, then you can use the FTP client software such as FileZilla client to transfer the program to the PLC as described in Section 2.10. 18.4 Accessing The Extended Data Files Using TBASIC TBASIC program on a F-series PLC with r77 firmware can directly access any data file with names from “Z000. yyy to Z 399. yyy” . File with names from “0.yyy” to “Y.yyy” are reserved for storing web pages only and hence are not accessible by TBASIC. The PLC can open a new file for writing new data (ess entially deleting the old file content), or open an existing file and append data to the end of the file. It c an also open a file and read data from the file as ASCII strings. It can achieve this by using the PRINT #8 and INPUT$(8) functions, which will be described in details in the following sections. We have created a sample program: “ExtendedFileSystem.PC6” (click here: http://www.tri-plc.com/trilogi/ExtendedFileSystem.zip to download) that demonstrates all these new capabilities. 18.4.1 Open A File For Writing New Data Syntax: PRINT #8 “<WRITE Zxxx.yyy>” where “Zxxx.yyy” is the file name. If successf ully executed, the “<WRITE>” command will open the file and set the file pointer to the beginning of the file. Thereafter the PLC can start writing ASCII data to the file using the PRINT #8 <s tring data> command. [Note: the PRINT #8 command automatically appends a carriage return to the end of the string data unless the string data is terminated with a semi-colon (‘;’) ].

193. Chapter 18 Extended File System 18-5 When the PLC has completed writing data, it must close the file by executing the command: PRINT #8 “</>”. E.g. PRINT #8 “<WRITE Z005.TXT>” PRINT #8 “The current Greenwich Mean Time is” PRINT #8 STR$(TIME[1]);”:”;STR$(TIME[2]);”:”;”00” PRINT #8 “</>” The CPU should use the STATUS(2) command to check whether the <WRITE> has been successfully executed before begi n writing data to it. STATUS(2) command returns a 1 if “<WRITE>” operation is successful and returns a ‘0’ if the operation failed. The CPU can only write or access to a single file at a time so any opened file must be closed by the PRINT #8 “</>” command before another file can be opened for writing. 18.4.2 Open A File For Appending Data To The End Of The File Syntax: PRINT #8 “<APPEND Zxxx.yyy>” where “Zxxx.yyy” is the file name. If successf ully executed, the “<APPEND>” command will open the file and set the file pointer to the end of t he file. Thereafter any string data following a PRINT #8 command will be appended to the end of the file. When the PLC has completed appending data, it must close the file by executing the command: PRINT #8 "</>" . As per the “<WRITE>” command, the CPU shoul d also use the STATUS(2) command to check whether the <APPEND> command has been successfully executed before begin writing data to it. Example PRINT #8 "<APPEND Z"+STR$(F,3)+".txt>" S = STATUS(2) ‘ Status(2) returns 1 if successful. IF S <> 1 RETURN: ENDIF FOR I = 1 to 100 PRINT #8 STR$(I,4)+":This is the Appended first line" PRINT #8 STR$(I,4)+":This is the Appended second line" SETLCD 1,1, "Append #"+STR$(I,4) NEXT PRINT #8 "</>" ‘ close the file 18.4.3 Delete A File Syntax: PRINT #8 “<DELETE Zxxx.yyy>” where “Zxxx.yyy” is the file name of the file to be deleted. There is no need to close a deleted file. 18.4.4 Open A File For Reading Syntax: PRINT #8 “<READ Zxxx.yyy>” where “Zxxx.yyy” is the file name of the file to be opened for reading. If the file has been successfully opened for reading after execution of the PRINT #8 “<READ>” command, the PLC

26. Chapter 1 Installation Guide 1-13 1.8 DIP SWITCHES DIP Switch OFF ON SW1-1 All outputs, relays, timers and counter values are non-retentive. DM[1] to DM[4000] data are non volatile and will not be reset. SW1-2 - - SW1-3 - • Disable the use of username/password and Trusted IP for FServer and Modbus/TCP Server. • PLC IP address defaults to 192.168.1.15:9080 SW1-4 Normal Run mode Suspends execution of the ladder logic program. But host communication remains active. 1.8.1 Usefulness of SW1-4 We have taken every effort to ensure that the hos t communication is always available even when the user-program ends up in a dead-loop. This allows the user to re-transfer a new program to the PLC and overwrite the bad program. However, you may still enc ounter a situation whereby after transferring a new program to the PLC, you keep encountering communi cation errors and you are unable to erase the bad program. This is especially common if you have been experimenting with the communication commands such as SETBAUD, SETPROTOCOL , PRINT or OUTCOMM. These commands may modify the communication baud rate, format, or protocol or se t the PLC to send data out of a COMM port that conflicts with i-TRiLOGI. In such cases, you c an turn ON DIP Switch SW1-4 and perform a power-on reset for the PLC. The PLC will not execute the bad program that causes communication problems and you can then transfer a new program into the PLC to clear up the problem. Note that when the PLC has been power-reset with DIP Switch #4 set to ON, all 3 serial port will boot up with default baud rate and communication format of 38, 400, 8,n,1. (This differs from the T100M+ PLC.) 1.9 Real Time Clock Battery The EZWire1616 PLC has a built-in, battery-backed Real-Time clock (RTC). On the EZWire1616 CPU board there is a battery holder that takes a singl e CR1632 lithium primary battery. Due to certain international aviation safety restrict ions on shipping of products that cont ain lithium cells by airfreight or air courier, your PLC may or may not be supplied with the battery. If the battery is not included, you can purchase the battery from a local electronics component supplier, such as www.futureelectronics.com (for US or Canadian users), and simply press it into the battery holder. The PLC’s RTC consumes about 1 μ A during power down. A Ranata CR1632 lithium battery has a charge capacity of 125 mAh. This means that theoretically the battery should be able to supply the RTC for 125*1000 hours, or about 5200 days (> 10 years). Since this Lithium battery has a shelf life of 10 years, providing for a safety factor of 2 would mean t hat the single Ranata CR1632 should be able to power the PLC’s RTC for at least 5 years, and could be for as long as 10 years if the PLC is never powered down.

152. Chapter 15 Host Link Communication Protocol 15-4 15.4.2 Calculation of FCS The FCS is 8-bit data represented by two ASCII characters (00 to FF). It is a result of performing an Exclusive OR on each character in the frame sequentia lly, starting from @ in the device number to the last character in the data. An example is as follows : @ 0 4 R V I A 4 8 * Device ID Header Data FCS @ 0100 0000 XOR 0 0011 0000 XOR 4 0011 0100 XOR R 0101 0010 XOR V 0101 0110 XOR I 0100 1001 XOR A 0100 0001 0100 1000 = 48 16 Value 48 16 is then converted to ASCII characters '4 ' (0011 0100) and '8' (0011 1000) and placed in the FCS field. FCS calculation program example The following C function will compute and return the FCS for the "string" passed to it. unsigned char compute_FCS(unsigned char *string){ unsigned char result; result = *string++; /*first byte of string*/ while (*string) result ^= *string++; /* XOR operation */ return (result); } A Visual Basic routine for FCS computation is included in the source code of a sample communication program you can download from: http://www.tri-plc.com/applicat ions/VBsample.htm#VB6sample 15.4.3 Communication Procedure Unlike the point-to-point communication protocol, the host computer must NOT send the CTRL-E character before sending the command frame. After the host computer has sent out the multi-point host- link command frame, only the controller with the correct device ID will respond. Hence it is essential to ensure that every controller on the RS485 network assume s a different ID (If a master PLC is used, then

183. Chapter 17 IR Remote Control 16-24 function returns a string only if a proper response st ring has been received. Please refer to the TBASIC Reference for a detailed explanation of this command. The NETCMD$() function therefore greatly simplifies t he programming tasks for handling networking between PLCs. The programmer only needs to construc t the correct command string according to the formats described in this chapter, pass the formatted string to the NETCMD$() function, and then check for the response string. An EZWire PLC may use t he NETCMD$ to map the I/O of another PLC into its internal relays and use the other PLC as its remote I/O. There are some programming examples in your “ TRILOGI\TL6\usr\samples ” folder that illustrate the use of NETCMD$() to map I/Os of a slave PLC to the ma ster. Please study the two examples: “ RemoteIO-Hseries.PC6 ” and “ RemoteIO-Mseries.PC6 ” carefully to understand the mechanism of mapping I/Os between the PLCs. The TRiLOGI program “ REMOTE-Hseries.PC6 ” will work on the H- series, M-series or F-series PLCs as slaves, whereas the program “ REMOTE-Mseries.PC6 ” will only work with F-series, FMD or Nano-10. This is bec ause the Super PLC host link command set is a superset of the H-series host link command set, and this exam ple uses the more efficient M-series host link commands to read/write 16-bit data fo r networking between M-series PLCs. An application note and example programs demonstrati ng how to use our other PLC models as slave remote I/O for the Super PLC can be found at the following web page: http://www.tri-plc.com/appnotes/AppnoteMain.htm 16.52 Inter PLC Networking Using MODBUS Protocols The PLCs may also pass data to each other using special MODBUS commands, which are even simpler to use than NETCMD$ but are restricted to accessi ng variables that are mapped into MODBUS address structure. Please refer to the Section 14.7 and 14.8 as well as the TBASIC Reference manual for details on using the READMODUS, WRITEMODBU S, READMB2 and WRITEMB2 commands.

73. Chapter 3 I/O and Internal Relays Programming 3-4 3.3.3 Example 1 – Turn on/off an Output This can be done using both the SETBIT v,n / CLRBIT v,n command and the SETIO labelname / CLRIO labelname command. 1. Using SETBIT v,n / CLRBIT v,n SETBIT OUTPUT[1], 0 ‘This will turn on the first output using the output[] register CLRBIT OUTPUT[1], 7 ‘This will turn off the 8th output using the output[] register 2. Using SETIO labelname / CLRIO labelname SETIO out1 ‘This will turn on the output out1 CLRIO out5 ‘This will turn off the output out5 In this case, out1 and out5 would need to be entered in the I/O Table as an output. Otherwise, there will be a compilation error. 3.3.4 Example 2 – Toggle an Output TOGGLEIO light ‘This will change the output, light, from off to on or on to off The output, light, would need to be entered into the I/O Table as an output as well and could represent any desired output. 3.3.5 Example 3 – Test the Status of an Output This can be done using both the TESTBIT ( v, n ) and TESTIO ( labelname ) command. Using TESTBIT ( v, n ) X = TESTBIT (INPUT[2], 1) ‘status of input #10 (on = 1, off = 0) is stored in variable X Using TESTIO ( labelname ) X = TESIO (button) ‘status of input button (def ined in the I/O table) is stored in variable X

141. Chapter 14 Serial Communications 14-9 14.8 Using The PLC As a Modbus / Omron Slave – SCADA, HMI Applications The EZWire1616 supports a subset of the OMRON ™ C20H and MODBUS ™ (Both ASCII and RTU modes are supported) compatible communication protocol s so that it can be easily linked to third-party control software/hardware products such as SC ADA software, LCD touch panels etc. The PLC automatically recognizes the type of command form at and will generate a proper response. These are accomplished without any user intervention and wi thout any need to configure the PLC at all! Both MODBUS and Omron protocols use the same device ID address (00 to FF) as used by the native “Hostlink Command” protocol described in Chapter 15. Since the addresses of I/O and internal variables in the EZWire1616 are organized very diffe rently from the OMRON or Modicon PLCs, we need to map these addresses to the corresponding memory areas in the Modbus address space so that they can be easily accessed by their corresponding protocols. All I/Os, timers, counters, internal relays, data me mory DM[1] to DM[4000], and floating point data FP[1] to FP[1000] are mapped to the Modbus Holding Register s space. The Inputs, Outputs, Relays, Timers and Counters bits are mapped to the MODBUS Bit addre ss space as shown in Table 14.1. Note that input and output bits are always mapped according to Table 14.1 whether it is MODBUS function 01, 02 or 05. However, 32 bit variables and string variables ar e not mapped since they are fundamentally quite different in their implementation among different PL Cs. Internal variables that are not mapped can be still be accessed by copying the cont ents of these variables to unused data memory DM[n] (this can be easily accomplished within a CusFn) so that they can be accessed by these third party protocols. 14.8.1 MODBUS ASCII Protocol Support The EZWire1616 support MODBUS ASCII protocols wi th the following command and response format: START Address Function Data LRC Check CRLF : 2 chars 2 chars # chars 2 chars 2 chars The following Function Codes are supported: 01/02 Read I/O bit (Use Bit Address Mapping in Table 14.1) 03/04 Read I/O Word registers 05 Force I/O Bit (Use Bit Address Mapping in Table 14.1). 06 Preset Single Word Register 16 Preset Multiple Word Registers The exact command/response format of the MODBUS protocol can be found at http://www.modbus.org. However, if your only purpose is to interface the PLC to other MODBUS hosts such as an LCD touch panel or SCADA software then there is no need to know the underlying protocol command format. All you need to know is which PLC’s system Variable is mapped to which MODBUS register, as shown in Table 12.1.

155. Chapter 15 Host Link Communication Protocol 15-7 withstand wrong voltages of up to + 60V! The LT1785AIN8 is a 1/4 power RS485 driver, which means up to 128 PLCs can be connected together. Unfortunately this IC is much more expensiv e than 75HVD3082 and hence it is not provided as standard component on the PLC. You can purchase the IC from any major electronic catalog company such as www.digikey.com . 2. When using non fault-tolerant RS485 driver s such as SN75176 or SN75HVD3082, we strongly recommend the following protection circuit to be added between every PLC’s RS485 and the twisted pair multi-drop network cable: 10 Ω 1/2 W 0.1A Fuses RS485 Network 9V 1W Zene r RS485 + - Power 0V Ground the Shield 24V Figure 15.3 Note: As can be seen from the circuit, the two 9V Zener diodes clamp the signal voltage on the PLC’s RS485 interface to between +9V and - 0.7V. If the high volt age persists, the 0.1A fuse will blow, effectively disconnecting the PLC from the offending voltage on the network. Even if you choose to replace the RS485 driver by an LT1785AIN8 IC in stead of using the zener/fuse pair wiring, you should still use shielded twisted pair cabl es as the multi-drop network “backbone” and connect the shield to the 0V (DC ground) power terminal of every PLC. The grounded shield then provides a common ground reference for all the different PL Cs’ power supplies. Even though the RS485 network may still work without a common ground reference because the signal wire pair will somehow “pull” all the RS485 devices to some reference point. Failure to provide a common grou nd is a potential source of serious trouble as signal wires with a floating ground easily induce large voltage differences between nodes when subjected to electromagnetic interference. Hence, for reliabl e operation it is important to provide the common ground. A grounded shield also has the additional advantage of shielding the electrical signals from EMI. 15.5.3 Single Master RS 485 Networking Fundamentals RS485 is a half-duplex network, i.e., the same two wires are used for both transmission of the command and reception of the response. Of course, at any one time, only one transmitter may be active. The EZWire1616 implements a master/slave network protoc ol. The network requires a master controller, which is typically a PC equipped with an RS485 interfac e. In the case of a PC, you can purchase an RS- 485 adapter card or an RS232C-to-RS485 converter and connect it to the RS232C serial port. A EZWire1616 can also be programmed to act as the ma ster, it can communicate with other PLCs by executing the “NETCMD$” function or the “READ MODBUS” or the “WRITE MODBUS” commands (the latter two are for communicating using MODBUS protocols only and are covered in Section 14.8 ).

144. Chapter 14 Serial Communications 14-12 14.8.1.2 WORD ADDRESS MAPPING As shown in Table 14.1, to access DM[1] from the PLC, you use MODBUS address space 4-1001 (Modicon convention, 1000 in binary address) and so on. To access the Real Time Clock Hour data (TIME[1]), use 4-0513. The I/O channels can also be read or written as 16-bit words by using the addresses from 4-0001 to 4-0320. Some MODBUS drivers (such as National Instrument s “Lookout” software) even allow you to manipulate individual bit within a 16-bit word. So it is also possible to map individual I/O bits to the “4x” address space. E.g. Input bit #1 can be mapped to 4-0001.1 and output bit #2 is mapped to 4-0257.2, etc. This is how it is shown in Table 14.1. However, if y ou do not need to manipulate the individual bit then you simply use the address 4-0001 to access the syst em variable INPUT[1] and address 4-0257 to access the system variable OUTPUT[1]. Note that INPUT[ 1] and OUTPUT[1] are TBASIC system variables and they each contain 16 bits that reflect the on/off stat us of the actual physical input and output bits #1 to #16. 14.8.2 MODBUS RTU Protocol Support The EZWire1616 also support the MODBUS RTU pr otocol. The difference between the ASCII and RTU protocols is that the latter transmits binary data dire ctly instead of converting one byte of binary data into two ASCII characters. A me ssage frame is determined by the silent interval of 3.5 character times between characters received at the COMM port. Ot her than that, the function codes and memory mappings are identical to the MODBUS ASCII protoc ol. Table 14.1 therefore applies to the MODBUS RTU protocol as well. MOBBUS RTU has the following command and response format: Start Address Function Data CRC 16 END Silence of 3.5 char times 1 byte 1 byte # byte 2 bytes Silence of 3.5 char times The following Function Codes are supported: 01/02 Read I/O bit (Use Bit Address Mapping in Table 14.1) 03/04 Read I/O Word registers 05 Force I/O Bit (Use Bit Address Mapping in Table 14.1). 06 Preset Single Word Register 16 Preset Multiple Word Registers 14.8.3 OMRON Host Link Command Support Command Type Header Level of Support a) TEST TS Full support b) STATUS READ MS Full support c) ERROR Read MF Dummy (always good) d) IR Area READ RR Full support (0000 to 1000) e) HR, AR, LR Area & TC Status READ RH Dummy (always returns “0000”) f) DM AREA READ RD Full support g) PV READ RC Dummy (always returns “0000”) h) Status Write SC Dummy (always OK)

116. Chapter 10 Stepper Motor Control 10-7 10.4.5.2 Example: PLC as a Full-Step Motor Driver Moving Forwards STEPMOVE 11,8000,101 ‘ channel 1 would send 8000 pulses to a motor and then turn on relay 101 STEPMOVE 12,50,102 ‘ channel 2 would send 50 pulses to a motor and then turn on relay 102 STEPMOVE 13,900,103 ‘ channel 3 would send 900 pulses to a driver and then turn on relay 103 Moving Backwards STEPMOVE 11,-300,101 ‘ channel 1 would send 300 pulses to a motor and then turn on relay 101 STEPMOVE 12,-1000,102 ‘ channel 2 would send 1000 pulses to a motor and then turn on relay 102 STEPMOVE 13,-7500,103 ‘ channel 3 would send 7500 pulses to a motor and then turn on relay 103 10.4.5.3 Example: PLC as a Half-Step Motor Driver Moving Forwards STEPMOVE 21,8000,101 ‘ channel 1 to send 8000 forward pulses to motor and turn on relay 101 STEPMOVE 22,50,102 ‘ channel 2 to send 50 forward pulses to a motor and turn on relay 102 STEPMOVE 23,900,103 ‘ channel 3 to send 900 forward pulses to motor and turn on relay 103 Moving Backwards STEPMOVE 21,-300,101 ‘ channel 1 to send 300 backward pulses to motor and turn on relay 101 STEPMOVE 22,-1000,102 ‘ channel 2 to send 1000 backward pulses to motor and turn on relay 102 STEPMOVE 23,-7500,103 ‘ channel 3 to send 7500 backward pulses to motor and turn on relay 103 10.4.6 Using the STEPMOVEABS Command This 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 -2 31 to +2 31 (i.e. about ± 2 x 10 9 ). 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 the 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 the 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. The STEPMOVEABS command is also used to specify whether the PLC is a motor controller, a full-step motor driver, or a half-step motor driver. STEPMOVEABS ch, position, r The ch parameter would specify which stepper motor channel is being used and whether it is being used as a controller, a full-step dr iver, or a half-step driver. The position parameter specifies how many pulses the motor will move relative to its home position. If the motor were in half-step driver mode, then position would be in half steps.

46. Chapter 2 Ethernet Port 2-18 2.4.1 Get our IP Address Format: <IP> Response: xxx.xxx.xxx.xxx:nnnn (IP address:port of FServer) Example: PRINT #4 “<IP>” SETLCD 1,1,”Our IP=”+INPUT$(4) Note: This IP address is returned instantly, so there is no need to wait for INPUT$(4). 2.4.2 DNS command: Resolving Domain Name into IP Address In order to use this command successfully, you mu st first correctly defi ne the DNS Server IP address mentioned in Section 2.1.4 . Format: <DNS [domain name]> Response: xxx.xxx.xxx.xxx IP address string returned by DNS server ERR:07-DNS Unresolved Either DNS se rver not properly defined or the domain name does not exist. Response: xxx.xxx.xxx.xxx (IP address string returned by domain name server) STATUS(3): This function returns 1 on success and 0 on failure. Example: PRINT #4 “ <DNS tri-plc.com> “ FOR I = 1 to 10000 A$ = INPUT$(4) IF LEN(A$) <> 0 SETLCD 1,1,” IP=”+A$ RETURN ENDIF NEXT Notes: a) There is no need for the closing tag </> to end this command. b) If your DNS server has been co rrectly defined, the above program should return the IP address as a string such as “130.94.216.144”. You can then us e this IP address string in all the other NS commands to be described in the following sub-sections. c) The DNS server may take some time to reso lve the domain name. If it is unable to resolve the domain name then it will return an error string, so y our program should test to see if it receives the ERR07 error message to determine w hether the returned string is useable. d) Although it is possible to embed the domain name directly in the NS command in place of IP address, it is usually much more efficient to use the IP address directly if it is known in advance. This is because the DNS server may take some time to resolve the domain name into IP address each time it is called, and there is a possib ility that the domain name server may be overloaded

49. Chapter 2 Ethernet Port 2-21 2.4.5 Remote File Services Format: <REMOTEFS [IP Address of remote TLServer 2.1 & above]> [File Service tag for TLServer] ..... </REMOTEFS> Response: The response strings sent by the remo te TLServer in response to the [ File Service tag] sent by this PLC. Or, ERR:04-Not Connected Failed to connect to remote TLServer. Example: Please refer to the “fnRFS1” and “fnR FS2” custom functions in the demo program: “TestEthernet.PC6”. Description: This commands allows the EZWire1616 to connect to a remote TLServer to perform any of the “Files & Email Services ” that a TLServer normally provides to PLCs that are connected to it. This in cludes creating text files on a remote TLServer and writing or appending data to it anytime. This makes it very convenient for the PLC to collect lar ge amounts of data and save them to the easily accessible, virtually limitless hard disk storage space that is available in today’s PCs. For detailed descriptions of the available [F ile Service Tags] please refer to TRiLOGI programmer’s reference manual under the chapter “File & Email Services”. All TLServer’s “File & Email Services” tags, such as <Email>, <WRITE>,<APPEND>, <READ> and <READ RTC> are available to the F-series PLC through the use of the <REMOTEFS> tag. You simply have to wrap the abov ementioned command tags between the <REMOTEFS IPAddr:port > and </REMOTEFS> tag, where “IPAddr:port” is the IP address and listening port of the remote TLServer. E.g. through the <R EAD RTC[]> tag, the PLC can synchronize its Real Time clock with a remote TLServer. (As you will later see, this feature is probably not very useful for the EZWire1616 anymore sinc e EZWire1616 has the ability to connect to the NIST Time Server to update its real time clock to Atomic clock accurately!) Note: Only TLServer version 2.1 or above can handle the <REMOTEFS> command tag sent by the Fx PLC. 2.4.6 Other Network Services Tags We will describe two more Network Services commands: <TCPCONNECT> and <MBTCPCONNECT> in separate sections later in this manual.

85. Chapter 5 Analog I/Os 5-3 0. 0 - 5.0V or 1. 0 - 5.0V V 2 :0-5V Analog 0V A/D #1 - #8 0-20mA or 4-20mA Current loop 250 Ω 1% 3.16 Ω 1% Analog 0V A/D #1 - #8 V 1 : 0-10V R 1 =20 .0K Ω 1% Converting 20mA current-loop to 0-5V Converting 0-10V signal to 0-5V Internal 20.00K Internal 20.00K Figure 5.3 You can see that interfacing to 0-10V analog signal is extremely simple since all you need is to add a 20.0K ohm series resistor and it will be divided into 0-5V when it enters the AD #1 to #8. However, to convert 0-20mA or 4-20mA current source into 0-5V or 1-5V voltage signal, you should use a 253.16 ohm resistor which, when paralleled with t he 20K ohm of internal impedance, will yield a 250.0 ohm total resistance. You can obtain 253.16 ohm by combining a 250 ohm and a 3.16 ohm metal-film resistor (for simplicity you can use a single 253 ohm resistor connected between the ADC input and 0V to convert the 20mA into 5V) Note that if the sensor has its own power supply, then you must connect the sensor “ground” to analog “AV SS ” terminal to provide a common ground. All the analog inputs to the EZWire1616 PLC are internally current-limited to guard against transi ent over-voltage damage. However, care should be taken to prevent applying excessive over-voltage to the analog inputs for a prolonged period of time, which can lead to permanent damage of the ADC input. 5.2.2 Interfacing to two-wire 4-20mA sensors Many 4-20mA analog sensors only have two wire c onnections and are designed to be powered by the 4- 20mA output current that flows through it. These types of sensors can be interfaced easily to the 0-5V analog inputs of the PLC as shown in the following diagram:

15. Chapter 1 Installation Guide 1-2 EZWire1616 F2424 Digital I/Os 16 DI, 16 DO 24DI, 24DO Analog Outputs 0-20mA x 4 0-5V x 4 I/O terminals 3 level Quick Connect, spring-cage terminal carry signal, power and 0V. 1-level screw terminal carries the I/O signal only Program memory 23.5K words 16K words Programming software TL7 and TL6 TL6 Only Floating point math 32-bit Single precision IEEE754 - Floating point variables A# to Z#, FP[1] to FP[1000] - Modbus support for floating-point vars Mobdus memory mapping for FP[1] to FP[1000] - Hostlink commands for floating-point vars New commands added “RVF” and “RV#A” to “RV#Z” - DIP Switch #3 ON • Default IP = 192.168.1.15:9080 • Bypass username/password and trusted IP • No change in IP address. • Bypass username/password and trusted IP Support multiple DM Read command New modified RVD command. Only via OMRON command. DM volatility DM[1] to DM[4000] can be non-volatile Only DM[300] to DM[4000] can be non-volatile READMODBUS READMB2 WRITEMODBUS WRITEMB2 SETSYSTEM 6, n (n = function #) Support Function # 01, 02, 03, 04 Support Function # 01, 02, 03, 04 Support Function # 05, 06, 16 Support Function # 15, 16 SETSYSTEM 6, n Support Function # 03, 04 Support Function # 03, 04 Support Function # 06, 16 Support Function # 16 DHCP IP address. Will request for IP address from DHCP server if IP = 0.0.0.0 Not supported. The EZWire1616 PLC features an Ethernet port that can be connected directly to a network router, switch, or hub for access to the LAN or to the In ternet. The Ethernet port supports the FServer (for remote programming or monitoring) and a Modbus/TCP se rver (for access by third party devices) with up to 10 simultaneous connections. The user’s program can also easily connect to another PLC or Modbus/TCP slave devices via the Internet, email real time data to any email address(es), or connect to the Internet Time Server to get the most accurate r eal time information! The Ethernet port also supports “Web Services”, allowing enterprise software, such as a database program or MS Excel, to query for information from multiple PLCs instantaneously. The basic EZWire1616 unit comprises 8 analog inputs (12-bit, 0-5VDC), 4 analog outputs (12-bit, 0-20mA DC), 16 digital Inputs, and 16 digital outputs. Every output point has a built-in flyback diode to protect against up to 30A of peak inductive pulse current. This is for protection only - DO NOT attempt to sink more current than is specified for the output on the EZWire1616 datasheet.

130. Chapter 13 LCD Display Programming 13-1 13 LCD DISPLAY PROGRAMMING There is no LCD display port on the EZWire1616, so it cannot drive a physical LCD screen ; however, it is still possible to display information on a virtual screen such as the online monitoring variables window or the web interface. All of the information in this chapter will apply to the EZWire1616 PLC virtual display output. 13.1 SETLCD Command The SETLCD y, x, string TBASIC command allows you to easily display any string of up to 20 characters on the y th line starting from the x th column. E.g., to display the message “EZWire1616” on the 3 rd line starting from the 5th character position fr om the left end of the screen, you use the command: SETLCD 3, 5, “EZWire1616” Normally, y = 1,2,3, 4; x = 1, 2, .... 20. Int egers must be converted to strings using the STR$() or HEX$() function before they can be displayed usi ng SETLCD. You can use the concatenation operator “+” to combine a few components together in the command. E.g. SETLCD 1,1,“Rm Temp = ”+ STR$(ADC(1)/100,3)+CHR$(223)+”C” The function STR$(ADC(1)/100,3) reads the content of ADC channel #1, divides it by 100 and converts the result into a 3-digit string. The CHR$(223) appends a special character which corresponds to the ‘ o ‘ symbol. E.g. if ADC(1) returns the value 1234, the final string being displayed will be : Rm Temp = 012 o C. 13.2 Special Commands For LCD Display If you use the SETLCD command with line #0, then the st rings will be treated as special “instructions” to be sent to the LCD module to program it for various modes of operation. This includes: blinking cursor, underline cursor or no cursor, as well as display shi ft mode. You have to refer to the LCD manufacturer’s data sheet for the detailed commands. Some of the most useful commands are listed below: Action Command 1. Clear screen SETLCD 0,1, CHR$(1) 13.3 Displaying Numeric Variable With Multiple Digits The “SETLCD y, x, string” command only overwrites the exact number of characters in the string parameter to the LCD display, and thereafter the curs or is placed back to the location specified by the x and y parameters. Thus if there exists some old charac ters right after the last character it can cause confusion, especially if you are displaying a number. E. g. If you first display the following string at row 1 and column 1: Pressure = 12345 And if you subsequently display the st ring “Pressure = 983” at the same location without first clearing the line, then you will see the following string being displayed:

108. Chapter 9 Interrupts 9-2 are not shared with other special f unctions. Hence, these can be used eit her as ordinary digital inputs or as interrupt inputs. 9.2 Periodic Timer Interrupt (PTI) The Periodic Timer Interrupt (PTI - not available on T100M+ PLC) lets you define a custom function that will be executed by the CPU precisely every x number of milliseconds (ms). The syntax for setting up a PTI is as follow: INTRDEF 18 , cfnum, x ‘ Interrupt 18 is reserved for PTI cfnum - custom function number to ex ecute when PTI event takes place. x - The period in number of milliseconds between two PTI events. E.g. INTRDEF 18, 101, 15 ‘ call function #101 every 15 ms. The Periodic Timer Interrupt runs independently of t he ladder logic and its execution is therefore not affected by the total PLC program scan time. When the PTI timer times up, the CPU will suspend the execution of the ladder logic or a (non-interrupt) TBASIC function and immediately calls up the custom function defined by the INTRDEF 18 statement. However, if the CPU is currently ex ecuting a user-interrupt service rout ine (e.g. an input interrupt or HSC interrupt), then the CPU will have to complete the current interrupt service routine before it will run the PTI interrupt function. Notes: 1) Limit the use of PTI only for critical code that requires precise timing between two events. Program bugs that occur due to problems in the PTI interrupt routine may be quite hard to debug. 2) For normal periodic routines, such as checki ng for temperature or checking serial port for incoming bar code data every few seconds, it is better to use the system clock pulses e.g. “Clk:1.0s” to trigger a {dCusF}. 3) Always try to keep your interrupt service r outine short and ensure that it will not end up in an endless loop. The TBASIC custom function execution time should be much shorter than the period of the PTI events. Otherwise, you may find that the CPU will be spending most of its time servicing the PTI interrupt routine, leaving ve ry little time for scanning the ladder program, and that will have an adverse im pact on the CPU performance. 9.3 Power Failure Interrupt (PFI) The EZWire1616 CPU has a power failure sensing ci rcuit that will call a custom function when it detects an impending power failure. This allows you to save critical data to the PLC’s non-volatile memory (see Section 1.7.2) just before power fa ilure. The syntax for the PFI is as follow: INTRDEF 17 , cfnum, 1 ‘ Interrupt 17 is reserved for PFI cfnum - custom function number to ex ecute when PTI event takes place. E.g. INTRDEF 17, 256, 1 ‘ call function #256 when power failure occur.

23. Chapter 1 Installation Guide 1-10 Note: Output #1 to #16 can each sink up to 4A peak or 1A continuous current @24VDC . Every output point has a built-in flyback diode to protect against up to 30A of peak inductive pulse current. This is for protection only - DO NOT attempt to sink more current than is specified for the output on the EZWire1616 datasheet. Output #5 to #8 can also be configured as PWM outputs to drive heating elements or proportional valves using the SETPWM command – please see Chapter 6 for more information. 1.5.2 Digital Output Wiring Diagram 1 2 3 4 5 6 7 24V DC Power Supply +24V EZWire1616 PLC   OUTPUTS LOAD LOAD LOAD LOAD LOAD LOAD LOAD LOAD 0V 8 PLC POWER Figure 1.9 - Transistor Output Interfacing to Load

86. Chapter 5 Analog I/Os 5-4 0V V+ PLC’s V+ - + ADC Input 253 Ω 12 or 24V P.S. for PLC A nd Sensors 4-20mA Sensor PLC’s 0V * 253.16 ohm resistor are instead of 250 ohms as explained in 5.2.2. The sensor output will be converted to a 1-5V analog voltage and can be read by the PLC using the ADC(n) statement, which will return readings of between 819 and 4095. 5.2.3 Using Potentiometer to Set Parameters A potentiometer can provide a very low cost means fo r users to input parameters to the PLC such as temperature settings, timer or counter preset values , etc. The diagram above shows how easy it is to implement such a device using the 5V reference output and an analog input. Very accurate parameters can be set if the LCD display is used as visual feedback of the settings. 10K Ω Potentiometer A /D#1 to 8 +5V GND Figure 5.4 5.2.4 Reading Analog Input Data The 8 analog input signals are read by the TBASIC co mmand ADC(1) to ADC(8). The ADC(n) function will return a number between 0 and 4095(12-bit resolu tion), which corresponds to the measured voltage at any of the analog inputs n. The re solution of a 12-bit ADC is 1/4096, th is means that for the 0-5V ADC range, the resolution is 5/4096V = 1.22mV. That means that if you apply a 2.500V to the PLC’ s analog input #3, ADC(3) should return a value of 2.500/5.000 x 4096 = 2048. Note that the CPU only accesses the analog input #n w hen the TBASIC function ADC( n) is called. Hence, in order to monitor the analog input, you have to execute the ADC function periodically. The frequency that the ADC function is called is known as t he “sampling rate” and it depends on how fast the analog data changes. If the analog data changes slowly (such as room temperature) then there may be no need to sample the analog at high frequency.

153. Chapter 15 Host Link Communication Protocol 15-5 the master PLC should also have a different ID from all the slaves). Otherwise, contention may occur (i.e., two controllers simultaneously sending data on the receiver bus, resulting in garbage data being received by the host). On the other hand, if none of the controller IDs match that specified in the command frame, then the host computer will receive no response at all. The PLC automatically recognizes the type of command protocols (point-t o-point or multi-point) sent by the host computer and it will respond accordingly. If a multi-point command is accepted by the controller, the response frame will start with a character '@', followed by its device ID and the same header as the command. This will be followed by the data request ed by the command, a response frame FCS and the terminator. 15.4.4 Framing Errors When the controller receives a multi-point host-lin k command frame, it computes the FCS of the command and compares it with the FCS field receiv ed in the command frame. If the two do not match, then a "framing error" has occurred. The controller will send the following Framing Error Response to the host: Framing Error Response Frame (Multi-point only) @ x x F E x x * Device ID Header FCS Terminator 15.4.5 Command Errors If an unknown command is received or if the command is illegal (such as an attempt to access an unavailable channel), the following error response will be received: Error Response Format @ x x E R x x * Device ID Header FCS Terminator The host computer program should always check the re turned response for possibilities of errors in the command and take necessary action. 15.4.6 SHOULD YOU USE POINT-TO-P OINT OR MULTI-POINT PROTOCOL? Although at first the point-to-point protocol appear s simpler in format (having no ID and no FCS computation), the communication procedure is actua lly more complex since it involves the need to synchronize the two communicating devices by exc hanging the Control-E character. The lack of error checking also makes the protocol less re liable especially in noisy environment. In fact, the TLServer software will only accept multi- point communication protocol from the client software with the exception of the “IR*” command, which is needed to obtain the ID of a PLC with unknown ID. Hence, if you were to write your own communicati on program to talk to the PLCs, we would strongly recommend using only the multi-point protocol exclus ively due to its simplicity and built-in error checking capability.

114. Chapter 10 Stepper Motor Control 10-5 10.4 Programming Stepper Control Channel 10.4.1 Introduction Any of the 3 stepper-motor channels can be configured as either a Controller (direction/pulse) or a Driver; and as a Driver, can drive in FULL STEP mode or HALF STEP mode. The stepper channels are controlled by the PLC program using the “ STEPMOVE ” and “ STEPMOVEABS ” commands. These commands have the same parameters as they did when they were used on M-Series PLCs. For example, STEPMOVE ch, count, r STEPMOVEABS ch, position, r The ch parameter is the channel. This is how the PL C knows which stepper motor channel to turn on. Now this parameter is also used to set the stepper motor channel to controller mode, full-step driver mode, or half-step driver mode. To set the stepper motor channel to controller mode, the ch parameter should be a “1”, “2”, or “3”. This is the same as for the M-Series PLCs, ex cept that channel 3 is now available. To set the stepper motor channel to driver mode, the ch parameter needs to have a “1” prefixed to it for full-step mode and a “2” prefixed for half-step mode. 10.4.2 Full-Step Driver Mode: STEPMOVE 11, 100, 1 ‘Stepper channel 1 will be driven 100 full steps STEPMOVE 12, 100, 1 ‘Stepper channel 2 will be driven 100 full steps STEPMOVE 13, 100, 1 ‘Stepper channel 3 will be driven 100 full steps 10.4.3 Half-Step Driver Mode: STEPMOVE 21, 100, 1 ‘Stepper channel 1 will be driven 100 half steps STEPMOVE 22, 100, 1 ‘Stepper channel 2 will be driven 100 half steps STEPMOVE 23, 100, 1 ‘Stepper channel 3 will be driven 100 half steps The same format should be used for STEPMOVEABS , except that the count parameter is changed to the position parameter (more details provided in t he Programmers Reference manual and also in the program examples section of this chapter). 10.4.4 Setting the Accel eration Properties Whether the stepper motor channels are being used to c ontrol a stepper motor driver or to drive the motor directly, the STEPSPEED command must be execut ed first in order to define the acceleration settings. Once this command has been executed, t he acceleration settings will not change until another STEPSPEED command is executed with different settings or if the PLC is powered down. If the PLC is powered down, the STEPSPEED command will need to be executed again before the stepper motor channels can be used. However, if a software reset executed (from online monitoring or within the program), the STEPSPEED command does not need to be re-executed. STEPSPEED ch, pps, acc

160. Chapter 17 IR Remote Control 16-1 16 HOST LINK PROTOCOL FORMAT This chapter describes the detailed formats of the command and response frames for all EZWire PLC host link commands. Only the formats for the point-to- point communication protocol are presented, but all these commands are available to the multi-point protocol as well. To use a command for multi-point system, simply add the device ID (@nn) before the command header and the FCS at the end of the data (See Chapter 3 for detailed descriptions of multi-point communication command format). 16.1 Device ID Read Command Format I R * Response Format I R 16 1 16 0 * Device ID (00 to FF) The device ID is to be used for the multi-point comm unication protocol so that the host computer can selectively communicate with any controller c onnected to a common RS485 bus (see Chapter 3 for details). The ID has no effect for point-to-point co mmunication. The device ID is stored in the PLC's non- volatile memory and, therefore, will remain with the controller until it is next changed. 16.2 Device ID Write Command Format I W 16 1 16 0 * New Device ID (00 to FF) Response Format I W * E.g. To set the PLC’s ID to 0A, send command string “ IW0A *” to PLC. 16.3 Read Digital Input Channels Command Format R I n n * 8-bit Channel # (Hex)

91. Chapter 5 Analog I/Os 5-9 5.4 Analog Outputs The EZWire1616 PLC features 4 channels of 0-20m A DC, 12-bit analog outputs (Digital-to-Analog Converters or D/A). These 4 D/A outputs each have t heir own dedicated pins and, therefore, do not take up any Analog input pins. The pin assignment of t hese analog outputs is described in Section 1.2.1. 4095 DAC Output AV CC 4095 4096 SetDAC value 4094 4096 1 4096 4094 2 4096 1 2 3 0 Figure 5.8 Note that the D/A #1 to #4 are all current source out puts that source 0 to 20mA of current. Each output has an associated 12-24V supply terminal (same as PL C power) that can be used to supply power to the device being controlled. However, 24V DC is the compliance voltage recommended for the power supply if the analog outputs will be converting to 0-10V at the control input of the device being interfaced to. This is because 12V may not be enough drive the full 0-10V range when taking voltage drops into consideration. The sum of the voltage dr ops must not exceed the source voltage. The line itself will have a small resistance proportional to the distance it runs and this will create a voltage drop to consider. Any other resistors added at the desti nation (control input) to convert the current signal to a voltage will also need to be considered.

163. Chapter 17 IR Remote Control 16-4 Response Format R T 16 1 16 0 * 8-bit data in Hex 16.6.1 Definition of Timer- Contact Channel Numbers A timer contact is a single bit of memory and 8 ti mer contacts are grouped into one 8-bit channel similar to that of the inputs, outputs etc. The following table shows the timer numbers defi ned in TRiLOGI's Timer entry table and their corresponding channel numbers. bit7 Timer Contact numbers bit0 CH0: 8 7 6 5 4 3 2 1 CH1: 16 15 14 13 12 11 10 9 CH2: 24 23 22 21 20 19 18 17 CH3: 32 31 30 29 28 27 26 25 CH4: 40 39 38 37 36 35 34 33 CH5: 48 57 56 45 44 43 42 41 CH6: 56 55 54 53 52 51 50 49 CH7: 64 63 62 61 60 59 58 57 16.7 Read Counter Contacts Command Format R C n n * 8-bit channel # (Hex) Response Format R C 16 1 16 0 * 8-bit data in Hex 16.7.1 Definition of Counter -Contact Channel Numbers: The 64 counter contacts are assigned channel #’s in ex actly the same way as the 64 timers. Please refer to the last section: “16.6. Read Timer Contacts” for details. 16.8 Read Timer Present Value (P.V.) Command Format R M n n * nn: Timer1=00, ..... Timer16=0F.... Timer64=3F Response Format

167. Chapter 17 IR Remote Control 16-8 16.17 Read Variable – Single Fl oating Point Array FP[1] to FP[1000] (Note: This new command is available only to Fx PLC) Command Format R V F 16 3 16 2 16 1 16 0 * 0001 to 0FA0 (4000 10 ) index to FP[ ] variable Response Format R V F 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * 8 Hexadecimal Digit in 32bit IEEE format E.g. To read the value of FP[20], send host-link command “ RVF0014* ”. If variable FP[20] contains the value 1.2345E-2 (0.012345), PLC will send the response string as “ RVF3C4A42AF* ”. 16.18 Read Variable – Multiple Floating Point Data FP[1] to FP[1000] (Note: This new command is available only to Fx PLC) Command Format R V F 16 3 16 2 16 1 16 0 16 3 16 2 16 1 16 0 * Starting FP[ ] index Number of FP 0001 to 03E8 (1000 10 ) 0001 to 0019 (25 Dec) Response Format R V F 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 ... ... Header 1 st Data 8 Hexadecimal Digit in 32bit IEEE format ... ... 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * Last data E.g. To read the value of FP[101] to FP[110], send host-link command “ RVF0065000A* ”. 16.19 Read Variable - System Variables This command allows you to read all the Fx PLC’s 16-bi t system variables such as the inputs[ ], outputs[ ], relays[ ], counters[ ], timers[ ], timers’ P.V., counters’ P.V., CLK[ ] and DATE[ ]. Although inputs, outputs etc. are also accessible via the “RI”, “RO”, “ RR”... commands, the RVS command can access them as 16-bit words instead of as 8-bit bytes in those co mmands. For the 32-bit system variable HSCPV[ ], use the “RVH” command described in the next section to access it. It may be more conventional for some SCADA software driver to use a single header comm and “RVS” to access all the I/O, varying only the “type” number to access different I/O types.

170. Chapter 17 IR Remote Control 16-11 16.25 Write Counter-contacts Command Format W C n n 16 1 16 0 * Channel # Data (00 to 07) Response Format W C * 16.26 Write Timer Present Value (P.V.) Command Format W M n n 10 3 10 2 10 1 10 0 * Timer1=00, New timer PV ........ Timer64=3F (Hex) Response Format W M * Please note that the timer number st arts from 00, which represent ti mer #1, then 01 represents timer #2... and so on. 16.27 Write Timer Set Value (S.V.) Command Format W m n n 10 3 10 2 10 1 10 0 * Timer1=00, New timer SV .... Timer64=3F (Hex) Response Format W m * Note: the 2nd character is a lower case “m” inst ead of the upper case “M” of “WM” command.

119. Chapter 11 Pulse Width Modulated Outputs 11-1 11 PULSE WIDTH MODULATED OUTPUTS 11.1 Introduction Pulse-Width Modulation (PWM) is a highly efficient and convenient way of controlling output voltage to devices with large time constants, such as cont rolling the speed of a DC motor, the power to a heating element, or the position of a proportional valve. The PWM works by first turning on the output to full voltage for a short while and then shutting it off for another short while and then turning it on again, and so on, in consistent and accurate time intervals. This can be illustrated with the following diagram: a b Load Voltage V Full x V Full A verage voltage a + b a = Figure 11.1 The average voltage seen by the load is determined by the “duty cycle” of the PWM waveform. The duty cycle is defined as follow: Duty Cycle = a a + b x 100% Period = (a + b) Frequency = 1/period Hz Average voltage = % duty cycle multiplied by the full load voltage V Full. Since the voltage applied to the load is either “Fully ON” or “Fully OFF”, it is highl y efficient because the switching transistors are working in their saturated and cut-off region and dissipate very little power when it is fully turned ON. 11.2 EZWire1616 PLC PWM Outputs Technical Specifications: No. of Channels 4 Duty Cycle range 0.00 to 100.00 Worst case resolution 0.1% Available Frequencies (Hz) % Frequency Errors : 1Hz to 50 KHz, < + 0.01% @ 100Hz < + 0.5% @ 10KHz < + 2% @ 50KHz Relevant TBASIC commands SETPWM Unlike in the T100M+ PLCs, which only support 8 fixed frequencies settings, the PWM channels in the EZWire1616 PLC can generate pulses with frequency rangi ng from 1Hz all the way to 50KHz. At the

95. Chapter 5 Analog I/Os 5-13 To compensate for this error, enter a value of 146 in the “ADC Calib.” for Ch 8 and save it to the PLC. After the PLC has rebooted, the CPU would apply the mu ltiplication factor of 1.0146 to the readings it received, which would correct the reading to: 3230 x 1.0146 = 3277. Notes: 1) We have created an MS-Excel spreadsheet file “AnalogCalibration.xls” to facilitate the computations of the correction factor, X, used in the ADC and DAC Calibration. This file can be downloaded from the following web page: http://www.tri-plc.com/appnotes/F-s eries/AnalogCalibration.xls 2) Changes to the ADC calibration data only take effect after the PLC has been cold-booted. You can either power cycle the PLC or simply c heck the “Reboot PLC After Save” checkbox and the PLC will re-boot after you have transferred the parameters to it. 5.5.2 ADC Zero Offset 4095 4094 4093 1 2 3 0 Input Voltage 0 5.00 A DC(n) value Zero Offset Figure 5.12 The zero offset error can be corrected by entering a value into the “ADC Zero Offset” field. Any number between –100 and 100 can be entered here. The ADC(n) f unction would add the zero-offset value that you entered here to the measured value and return the total sum to the calling routine. 5.5.3 DAC Calib. A value x entered in each of these fields represents the multiplication factor (1 + x/10000) that the PLC will apply to the “ value ” parameter, which is execut ed by the command “SETDAC n, value” before actually writing to the DAC output. This allows the user to appl y a correction factor to t he DAC output if there is a problem with the DAC current. Example 1: If you execute “SETDAC 1,2048”, you woul d expect the DAC #1 to output 10.000mA, but instead you only get 9.920mA.

125. Chapter 12 Real Time Clock 12-1 12 REAL TIME CLOCK 12.1 Introduction A Real Time Clock (RTC) is a device that keeps a ccurate date and time information down to the second. The RTC in the EZWire1616 is battery backed so that time will continue to run if PLC power is lost with or without warning. On the FMD Series and Nano-10 PLCs, it is not possible to keep the RTC running after power loss unless either the FRAM-RTC-0 or FRAM-RTC-256 module is installed. However, the FRAM-RTC modules are not compatible and are not required with the EZ Wire1616 because a battery is used to power the on- board RTC. Due to safety restricti ons by air-transportation, the battery may or may not be included with your EZWire1616. If included, it may not be installed on the PLC in the factory and, in that case, you will need to install it yourself. Please refer to Section 1.9 for information on both purchasing and installing the RTC battery. NOTE: If the RTC battery is not installed or the battery is removed for more than 15 seconds when the PLC is powered down, then the PLC will lose its real time clock data when it is powered up again. When this happens the "RTC Error" status LED on the CPU board will light up and the RTC.Err bit in the ladder logic special bit will be ON so that user pr ogram can use it to alert the operator. 12.2 TBASIC variables Used for Real Time Clock Date Time YEAR DATE[1] HOUR TIME[1] MONTH DATE[2] MINUTES TIME[2] DAY DATE[3] SECOND TIME[3] Day of Week DATE[4] There are 7 registers available in TBASIC that are used to access and configure the date and time. These registers, which are shown above, can be read from and written to just like any other integer variable. The data for these registers are in integer format. DATE[1] : may contain four digits (e.g. 1998, 2003 etc). DATE[4] : 1 for Monday, 2 for Tuesday, .... 7 for Sunday. 12.3 RTC Error Status On Ladder Logic There is a special bit available in TRiLOGI that a llows you to notify the PLC program if the RTC Error event occurs and the RTC Error stat us light is turned on. The RTC E rror event occurs if the RTC is corrupted or damaged (see section 12.8 for more detail) or if the battery is not installed. The special bit is called RTC.Err and can be obtained from the “Special Bi ts” I/O Table. The RTC.Err contact can be used

164. Chapter 17 IR Remote Control 16-5 R M 10 3 10 2 10 1 10 0 * Timer present value in Decimal The present value (PV) of the specified timer is returned in decimal form as four byte ASCII text characters from 0000 to 9999. 16.9 Read Timer Set Value (S.V.) Command Format R m n n * nn: Timer1=00, ..... Timer16=0F.... Timer64=3F Response Format R m 10 3 10 2 10 1 10 0 * Timer Set Value in Decimal The Set Value (S.V.) of the specified timer is returned in decimal form as four byte ASCII text characters from 0000 to 9999. Note that this command header contains small letter “m” instead of “M” in the “RM” command. 16.10 Read Counter Present Value (P.V.) Command Format R U n n * nn: Counter1=00, ..... Counter16=0F.... Counter64=3F Response Format R U 10 3 10 2 10 1 10 0 * Counter present value in Decimal The Present Value of the specified counter is returned in decimal form as four byte ASCII text characters from 0000 to 9999. 16.11 Read Counter Set Value (S.V.) Command Format R u n n * nn: Counter1=00, ..... Counter16=0F.... Counter64=3F Response Format

178. Chapter 17 IR Remote Control 16-19 Response Format W X $ * E.g. To write the string data “Hello TR i” at EEPROM String address 12, send host-link command “ RX$000CHello TRi * ”. 16.47 Force Set/Clear Single I/O Bit This new “Wbnnnnxx” command allows you to change a si ngle I/O bit on the PLC. You can force set or clear any single input, output, relay, timer or c ounter bit. This has an advantage over other write commands such as WI, WO, etc that affects the ent ire group of 8 or 16-bits organized into “channels”. Command Format W b n n n n x x * I/O Bit address 00 – Clear I/O bit (OFF) (Hex) FF – SET I/O bit (ON) Response Format W b * I/O Type Bit address nnnn (Hex) Input #1 to #256 0000 to 00FF Output #1 to #256 0100 to 01FF Timer #1 to #256 0200 to 02FF Counter #1 to #256 0300 to 03FF Relay #1 to #256 0400 to 04FF Relay #257 to #512 0500 to 05FF E.g. To force output 1 to ON, send “ Wb0100FF* ”. To turn it OFF, send “ Wb010000* ” 16.48 Using OMRON Host Link Commands Since the PLCs also support OMRON C20H Host Link commands, which are very similar in construct to our multi-point command/response format, you can al so make use of OMRON commands to supplement the native host link commands. We will only discuss four of the OMRON host link comm ands “RR”, “WR”, “RD” and “WD” in this section because these commands can be used by users to read/write to multiple I/O registers and data memory in a single command (Note: maximum length of command string should be <=80 characters).

84. Chapter 5 Analog I/Os 5-2 5.2 Analog Inputs Each EZWire1616 PLC is equipped with 2 independent, 12-bi t A/D (Analog to Digital) converters. Each A/D converter multiplexes with up to 4 Analog input pins, giving a total of 8 analog input channels. The 2 A/D converters run simultaneously and thus save conversion time, even when all 8 analog channels are used. All analog input channels operate in the range of 0-5V full-scale. The pin assignment for these analog inputs is described in Section 1.2.1. Electrical Characteristics No. of A/D channel 8 Resolution 12-bit Input Impedance Ch #1 to 8 20.00K Ohms Moving Average 1 to 9 points (user definable) Conversion Time < 2 μ s for one channel. < 6 μ s for all 8 channels (2 A/D converters run simultaneously) 4095 4094 4093 1 2 3 0 Input Voltage 0 5.0 0 A DC(n) val ue Figure 5.2 Transfer Function for 12-bit ADC 5.2.1 A/D #1 to 8 The DC input impedance of Analog inputs #1 to 8 are all 20.00K ohms. This is not a problem when connected to a 0-5V low impedance analog source. However, if you need to connect to 0-10V inputs or 4-20mA analog source to A/D #1 to #8, you have to take into consideration the low A/D input impedance in your design. The following figures show how to connect 4-20mA current source signals and 0-10V signals to the A/D inputs #1 to 8. :

122. Chapter 11 Pulse Width Modulated Outputs 11-4 In PWM term, 1.00ms pulse width every 20ms means a duty cycle of 1.00/20.00 = 5.00%. 2.00ms pulse width every 20ms means a duty cycle of 2.00/20.00 = 10.00% duty cycle. So to control the position of the actuator one only needs to send it a positive PWM signal with frequency = 1/0.02 = 50Hz and duty cycle between 5% and 10%. The gear and servo feedback mechanism within the RC Servo produces a huge amount of torque relative to its weight for positioning the actuator to the pos ition determined by the pulse width at the “control” input. Yet once it is in the correct position the serv o draws only minimum current required to maintain its position. Hence being a closed-loop controller an RC Servo is actually a much more efficient and effective positional control device (for a limited range) than a st epper motor which relies on a constant current in its winding to provide the “holding torque” for positioni ng. The open loop nature of stepper motor means that it does not know if the device is actually being kno cked out of its desired location whereas in the Servo any deviation from its desired location is inst antly being corrected by the servo mechanism. 11.4.1 Using EZWire1616 PWM Output To Control RC Servo (Non-Isolated) As you probably have realized by now that you can us e a single PWM output to very easily position the RC Servo to whatever position within its range of travel. However, since the EZWire1616 power supply is 12 to 24V (vs 4.8 to 6V on the typical RC Servo) and the PWM output is NPN (current sink) type, the signal to the servo is actually inverted if you connect the PLC’s output to the Servo’s “control” input directly. 3 (PW M 2) 4 24V DC Power For PLC +V 0V OUTPUTS 0V + - 1K 1 2 Control +6V 4.8V to 6V DCPower For Servo 0V 1N4001 RC Se rvo Figure 11.4 Non-isolated Interace to RC Servo As shown in the above figure, we use a 1K ohm resist or to pull up the “Control” input to the RC Servo’s power supply so that when the PLC’s output is OFF, the Control input is +6V and when the PLC output is ON, the “Control” input is pulled to low. The 1N4001 diode is to prevent the 24V weak pullup si gnal at the PLC output fr om entering the servo’s “Control” input. As such, when the PLC output is ON , the “Control” input is pulled down to about 1 diode drop (about 0.7V). In other words, the RC Servo connected above are controlled by the PLC’s PWM output but the duty cycle is inverted. I.e. To send a 5% positive PWM c ontrol pulse to the Servo, you can run the following statement: SETPWM 2, 9500, 50 ‘ Set PWM 2 output to 95% duty cycle at 50 Hz

161. Chapter 17 IR Remote Control 16-2 Response Format R I 16 1 16 0 * 8-bit Data (Hex) 16.3.1 Definition of Input Channels The following table shows the input numbers as defi ned in TRiLOGI's Input entry table corresponding to the input channel number. Bit7 Input/Output Numbers Bit0 CH00: 8 7 6 5 4 3 2 1 CH01: 16 15 14 13 12 11 10 9 CH02: 24 23 22 21 20 19 18 17 CH03: 32 31 30 29 28 27 26 25 CH04: 40 39 38 37 36 35 34 33 CH05: 48 57 56 45 44 43 42 41 CH06: 56 55 54 53 52 51 50 49 CH07: 64 63 62 61 60 59 58 57 CH08: 72 71 70 69 68 67 66 65 CH09: 80 79 78 77 76 75 74 73 CH0A 16 : 88 87 86 85 84 83 82 81 CH0B 16 : 96 95 94 93 92 91 90 89 CH0C 16 : 104 103 102 101 100 99 98 97 .... .. .. .. .. .. .. .. .. CH1E 16 : 248 247 246 245 244 243 242 241 CH1F 16 : 256 255 254 253 252 251 250 249 The 8-bit inputs of each channel are represented by a two byte ASCII text expression of its hexadecimal value. For example: if inputs 1 to 3 are logic '0's , inputs 4 to 10 are logic '1's and all other inputs are logic '0's, then if you send command “ RI00 * ”, you will get the response “RIF8 * ” (F8 16 =1111 1000 2 ). 16.4 Read Digital Output Channels Command Format R O n n * 8-bit Channel # (Hex) Response Format R O 16 1 16 0 * 8-bit data (Hex)

162. Chapter 17 IR Remote Control 16-3 Please refer to the Input/Output vs Channel Number table described in the section “16.3. Read Digital Input Channels” for details. 16.5 Read Internal Relay Channels Command Format R R n n * 8-bit Channel # (Hex) Response Format R R 16 1 16 0 * 8-bit data (Hex) 16.5.1 Definition of Internal Relay Channel Numbers All Fx PLCs support 512 internal relays, the channel defin ition of the first 256 internal relays is the same as the inputs and the outputs. The remaining re lays and their assigned channels are shown in the following table: bit7 Relay numbers bit0 CH20 16 : 264 263 262 261 260 259 258 257 CH21 16 : 272 271 270 269 268 267 266 265 CH22 16 : 280 279 278 277 276 275 274 273 CH23 16 : 288 287 286 285 284 283 282 281 CH24 16 : 296 295 294 293 292 291 290 289 CH25 16 : 304 303 302 301 300 299 298 297 CH26 16 : 312 311 310 309 308 307 306 305 CH27 16 : 320 319 318 317 316 315 314 313 CH28 16 : 328 327 326 325 324 323 322 321 CH29 16 : 336 335 334 333 332 331 330 329 CH2A 16 : 344 343 342 341 340 339 338 337 CH2B 16 : 352 351 350 349 348 347 346 345 .. .. .. .. .. .. .. .. .. CH3A 16 : 488 487 486 485 484 483 482 481 CH3D 16 : 496 495 494 493 492 491 490 489 CH3E 16 : 504 503 502 501 500 499 498 497 CH3F 16 : 512 511 510 509 508 507 506 505 16.6 Read Timer Contacts Command Format R T n n * 8-bit Channel # (Hex)

188. Chapter 19 Zigbee Communication 17-5 SETDIMMER ch , value ch = Light dimmer channel (1 to 12) This is mapped to the EZWire1616 PLCs outputs as follows: ch F-series Output # 1 5 2 6 3 7 4 8 5 9 6 10 7 11 8 12 9 13 10 14 11 15 12 16 value = Integer multiplier of an internal timer resolution (approximately 53 microsecond) to schedule the next firing time from the last zero crossing. For 50Hz AC signal, range = 1 to 188 For 60Hz AC signal, range = 1 to 156 The lamp will be fully ON (100% brightness) when * value = 1 and fully OFF (0% brightness) when value is near the maximum stated above. DO NOT set any of the dimmer channel with value greater than the maximum allowed for the corresponding AC frequency as it will lead to poor interrupt timing of the CPU and can affect all the dimmer channel (if you see the light flickering repeatedly then some of the dimmer channel could have been set with an out of range value.) * Note: Since the CPU needs a minimum amount of ti me delay to fire the TRIAC after the last zero crossing, the minimum value cannot equal 0. Also, please be reminded again that the voltage applied to the load is non-linear with respect to the firing angle controlled by the value parameter. 17.4.3 Programming Example Please find the demo program “SetDimmer.PC6” in the zip file that you can download from: http://www.tri-plc.com/trilogi/FPLCsamples.zip The demo program lets you experiment with turning a lamp slowly ON (Fade ON effect) and slowly OFF (Fade OFF effect) as well as letting you experiment wi th manual control of the lamp’s brightness using two push buttons.

137. Chapter 14 Serial Communications 14-5 power is turned OFF. The available baud rates and their corresponding baud rate numbers for COMM1, 2, and 3 are shown below: Format baud_no Format baud_no 8, 1, n 0000 xxxx 8, 2, n 0001 xxxx 8, 1, e 0100 xxxx 8, 2, e 0101 xxxx 8, 1, o 0110 xxxx 8, 2, o 0111 xxxx 7, 1, n 1000 xxxx 7, 2, n 1001 xxxx 7, 1, e 1100 xxxx 7, 2, e 1101 xxxx 7, 1, o 1110 xxxx 7, 2, o 1111 xxxx Where xxxx represents the baud rate of the comm port, as follow: x x x x 0000 0001 0010 0011 0100 0101 0110 0111 Baud Rate 2400 2400 4800 9600 19200 31250 38400 57600 x x x x 1000 1001 1010 1011 1100 1101 1110 1111 Baud Rate 100K 115.2K 230.4K 110 150 300 600 1200 A table of all the available baud rates and COMM formats is shown in the following page. The communication format written as “7,2,e”, which means 7 data bits, 2 stop bits and even parity. Likewise, “8,1,n” means 8 data bits, 1 stop bit and no parity. Y ou can use the table to select the baud number for a certain baud rate and COMM format. Baud No Table (All numbers in Hexadecimal: &H00 to &HFF) Format Baud 8,1,n 8,1,e 8,1,o 7,1,n 7,1,e 7,1,o 8,2,n 8,2,e 8,2,o 7,2,n 7,2,e 7,2,o 110 0 B 4 B 6 B 8 B C B E B 1 B 5 B 7 B 9 B D B F B 150 0 C 4 C 6 C 8 C C C E C 1 C 5 C 7 C 9 C D C F C 300 0 D 4 D 6 D 8 D C D E D 1 D 5 D 7 D 9 D D D F D 600 0 E 4 E 6 E 8 E C E E E 1 E 5 E 7 E 9 E D E F E 1200 0 F 4 F 6 F 8 F C F E F 1 F 5 F 7 F 9 F D F F F 2400 0 1 4 1 6 1 8 1 C 1 E 1 1 1 5 1 7 1 9 1 D 1 F 1 4800 0 2 4 2 6 2 8 2 C 2 E 2 1 2 5 2 7 2 9 2 D 2 F 2 9600 0 3 4 3 6 3 8 3 C 3 E 3 1 3 5 3 7 3 9 3 D 3 F 3 19200 0 4 4 4 6 4 8 4 C 4 E 4 1 4 5 4 7 4 9 4 D 4 F 4 31250 0 5 4 5 6 5 8 5 C 5 E 5 1 5 5 5 7 5 9 5 D 5 F 5 38400 0 6 4 6 6 6 8 6 C 6 E 6 1 6 5 6 7 6 9 6 D 6 F 6 57600 0 7 4 7 6 7 8 7 C 7 E 7 1 7 5 7 7 7 9 7 D 7 F 7 100K 0 8 4 8 6 8 8 8 C 8 E 8 1 8 5 8 7 8 9 8 D 8 F 8 115K2 0 9 4 9 6 9 8 9 C 9 E 9 1 9 5 9 7 9 9 9 D 9 F 9 230K4 0 A 4 A 6 A 8 A C A E A 1 A 5 A 7 A 9 A D A F A E.g . To set the baud rate of COMM3 to 19200, 7 data bit, 1 stop bit and even parity, execute the statement: SETBAUD 3, &HC4 Important : Since the three COMM ports are independent, they can be set to different formats and baud rates from each other. Please note that if y ou change the baud rate or communication format to something that is different from that set in the TLServer , then both the TLServer and TRiLOGI will no longer be able to communicate with the PLC via this COMM port. You will have to either configure the TLServer’s serial port setting using its “Serial Comm unication Setup” routine to match the PLC, or you can cycle the power to the PLC to reset the CO MM port to the default format (38,400, 8,n,1). If you had used “1st.Scan” contac t to activate the SETBAUD command than you will need to cycle the power to the PLC with DIP switch #4 set to ON to halt the execution of the SETBAUD command. When

173. Chapter 17 IR Remote Control 16-14 16.34 Write Variable – Multiple Data Memory (DM[1] to DM[4000]) (Note: This new command is available only to Fx PLC) Command Format W V D 16 3 16 2 16 1 16 0 16 3 16 2 16 1 16 0 16 3 16 2 ... ... 16-bit Index to array 1 st 16-bit Integer 2 nd 16-bit Integer 0001 to 0FA0 (4000 10 ) ... ... 16 3 16 2 16 1 16 0 * last 16-bit integer Response Format W V D 16 3 16 2 16 1 16 0 * Number of DMs written to the PLC 16.35 Write Variable – Singe Float Array (FP[1] to FP[1000]) (Note: This new command is available only to Fx PLC) Command Format W V F 16 3 16 2 16 1 16 0 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * 16-bit Index to array 8 hexadecimal digit 0001 to 03E8 (1000 10 ) in 32-bit IEEE format Response Format W V F 0 0 0 1 * Number of FP[ ] written to the PLC (=1) E.g. To write the value 6.265599E9 (=4F BABABABA in IEEE) to FP[1000], send hostlink command “ WVF03E84FBABABABA *”. 16.36 Write Variable – Multiple Float Array (FP[1] to FP[1000]) (Note: This new command is available only to Fx PLC) Command Format W V F 16 3 16 2 16 1 16 0 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 ... ... 16-bit Index to array 1 st IEEE float data 2 nd float

115. Chapter 10 Stepper Motor Control 10-6 The ch parameter should be a value between 1 and 3. Speed, pps , is based on the no. of pulses per second ( pps ) output by the pulse generator. The pps parameter should be set to a value between 1 and 10000 (max rated pps for the EZWire1616). The acceleration, acc , determines the total number of steps taken to reach full speed from a standstill and the number of steps from full speed to a complete stop. The stepper motor controller calculates and performs t he speed trajectory according to these parameters when the STEPMOVE or STEPMOVEABS commands are executed. To set stepper motor channel #3 to a speed of 100 pps in 50 steps, the command would be as follows: STEPSPEED 3, 100, 50 This would be equivalent to an acceleration of 100 pulses/s2, which can be calculated using the following expression: A = V 2 /2S = 100 2 /2*50 = 100pps 2 10.4.5 Using the STEPMOVE Command Once the STEPSPEED command is executed, the STEPMOVE command can be used to move the stepper motor forwards or backwards. The STEPMO VE command is also used to specify whether the PLC is a motor controller, a full-step moto r driver, or a half-step motor driver. STEPMOVE ch, count, r The ch parameter specifies which stepper motor channel is being used and whether it is being used as a controller, full-step driver, or half-step driver. The count parameter specifies how many pulses the motor will move. If the motor were in half-step driver mode, then count would be in half steps. The r parameter specifies which internal relay will be activated once the motor has moved count number of steps. This relay would be cleared when the STEPMOVE command is executed in case it was already activated. 10.4.5.1 Example: PLC as a Motor Controller In this example, the PLC would be a controller and w ould send the control pulse and direction pulse to a driver board. Moving Forwards STEPMOVE 1, 500, 101 ‘ channel 1 would send 500 pulses to a driver and then turn on relay 101 STEPMOVE 2, 750, 102 ‘ channel 2 would send 750 pulses to a driver and then turn on relay 102 STEPMOVE 3, 200, 103 ‘ channel 3 would send 200 pulses to a driver and then turn on relay 103 Moving Backwards STEPMOVE 1, -500, 101 ‘ channel 1 would send 500 pulses to a driver and then turn on relay 101 STEPMOVE 2, -750, 102 ‘ channel 2 would send 750 pulses to a driver and then turn on relay 102 STEPMOVE 3, -200, 103 ‘ channel 3 would send 200 pulses to a driver and then turn on relay 103

175. Chapter 17 IR Remote Control 16-16 W V H * E.g. To clear the value of HSCPV[2], send hostlink command “ WVH200000000* ”. 16.39 Halting the PLC Command Format C 2 * Response Format C 2 * When the PLC receives this command, it temporarily halts the execution of the PLC's ladder program after the current scan. However, the PLC conti nues to scan the I/Os and processes host link commands sent to it and will report the current I/O data and internal variables to the host computer. 16.40 Resume PLC Operation Command Format C 1 * Response Format C 1 * When the PLC receives this command, it will resu me execution of the ladder program if it had been halted previously by the "C2" command. Otherwise, this command has no effect. 16.41 Read Analog Input This command forces the PLC to refresh the value of its ADC data at the analog channel before returning its value in the response string (i.e. no need for the PL C to execute ADC(n) function to refresh the analog input) Command Format R A n n c c * Starting Analog Channel count Channel # (01-08h) (01 to 08h) Response Format

176. Chapter 17 IR Remote Control 16-17 R A 16 3 16 2 16 1 16 0 ... 16 2 16 1 16 0 * Starting channel ... Ending channel 16-bit Data (Hex) 16-bit Data (Hex) E.g. To read 4 channels of Analog i nputs starting from Ch #2, Send “ RA0204* ”. The response string will contain 4 sets of data for channel 2, 3, 4 and 5. 16.42 Read EEPROM Integer Data Command Format R X I n n n n c c * EEPROM starting Word Count Address (Hex) (01 to 20h) Response Format R X I 16 3 16 2 16 1 16 0 ... 16 2 16 1 16 0 * 1 st EEPROM Integer ... Last EEPROM 16-bit Data (Hex) 16-bit Data (Hex) Maximum allowable word count per command is 32 ( 01 to 20 Hex). If “count” is > 32, only the first 32 words will be returned. E.g. To read the 10 words of EEPROM data starting from address 100, send host-link command “ RXI00640A * ”. The response string will contain 10 sets of 16-bit data (4 ASCII hex digit per set). 16.43 Read EEPROM String Data Command Format R X $ n n n n * EEPROM String starting Address (Hex) Response Format R X $ a a a ... ... a a a * E.g. To read the string data stored at EEPROM address 10, send host-link command “ RX$000A * ”. The response string will contain stri ng data stored in the EEPROM (maximum 40 characters).

177. Chapter 17 IR Remote Control 16-18 16.44 Write Analog Output Upon receiving this command, the PLC updates the value of its DAC data at the analog output channel (i.e. no need for PLC to execute SETDAC to update the analog output). Command Format W A n n c c 16 3 16 2 16 1 16 0 ... 16 1 16 0 * Starting Analog channel DAC output data DAC output data channel # (01-02h) count for 1 st channel for subsequent ch (Hex) Response Format W A c c * channel count (Hex) 16.45 Write EEPROM Integer Data Command Format W X I n n n n c c 16 3 16 2 16 1 16 0 ... Starting EEPROM count Hex data for starting Address (0001-xxxx) (01-10h) EEPROM addr ess 16 3 16 2 16 1 16 0 ... 16 1 16 0 * data for subsequent EEPROM addresses Response Format W X I * Maximum allowable word count per command is 16 (01 to 10 Hex). 16.46 WRITE EEPROM String Data Command Format W X $ n n n n a a ... ... a * EEPROM String ASCII characters Address (Hex) (max. 40 characters)

51. Chapter 2 Ethernet Port 2-23 Table 2.5.1 Memory Mapping of F-series CP U Internal Data to MODBUS Register EZWire161 6 PLC I/O # MODBUS Holding Register Mapping (Modicon convention) MODBUS Bit Addr. Mapping Input n n 1 to 16 40001.1 to 40001.16 1 to16 17 to 32 40002.1 to 40002.16 17 to 32 33 to 48 40003.1 to 40003.16 33 to 48 49 to 64 40004.1 to 40004.16 49 to 64 65 to 80 40005.1 to 40005.16 65 to 80 81 to 96 40006.1 to 40006.16 81 to 96 Output n 256 + n 1 to 16 40017.1 to 40017.16 257 to 272 17 to 32 40018.1 to 40018.16 273 to 288 33 to 48 40019.1 to 40019.16 289 to 304 49 to 64 40020.1 to 40020.16 305 to 320 65 to 80 40021.1 to 40021.16 321 to 336 81 to 96 40022.1 to 40022.16 337 to 352 Timer n 512+n 1 to 16 40033.1 to 40033.16 513 to 528 17 to 32 40034.1 to 40034.16 529 to 544 33 to 48 40035.1 to 40035.16 545 to 560 49 to 64 40036.1 to 40036.16 561 to 576 Counter n 768 + n 1 to 16 40049.1 to 40049.16 769 to 784 17 to 32 40050.1 to 40050.16 785 to 800 33 to 48 40051.1 to 40051.16 801 to 816 49 to 64 40052.1 to 40052.16 817 to 832 Relay n 1024 + n 1 to 16 40065.1 to 40065.16 1025 to 1040 17 to 32 40066.1 to 40066.16 1041 to 1056 33 to 48 40067.1 to 40067.16 1057 to 1072 49 to 64 40068.1 to 40068.16 1073 to 1088 65 to 80 40069.1 to 40069.16 1089 to 1104 81 to 96 40070.1 to 40070.16 1105 to 1120 97 to 112 40071.1 to 40071.16 1121 to 1136 113 to 128 40072.1 to 40072.16 1137 to 1152 129 to 144 40073.1 to 40073.16 1153 to 1168 145 to 160 40074.1 to 40074.16 1169 to 1184 161 to 176 40075.1 to 40075.16 1185 to 1200 177 to 192 40076.1 to 40076.16 1201 to 1216 193 to 208 40077.1 to 40077.16 1217 to 1232 209 to 224 40078.1 to 40078.16 1233 to 1248 .. .. .. 497 to 512 40097.1 to 40097.16 1521 to 1536

142. Chapter 14 Serial Communications 14-10 Table 14.1: PLC I/O & Variable to Modbus Address Mapping EZWire1 616 I/O # MODBUS Holding Register (Modicon Convention) MODBUS Bit Addr. Input n N 1 to 16 40001.1 to 40001.16 1 to16 17 to 32 40002.1 to 40002.16 17 to 32 33 to 48 40003.1 to 40003.16 33 to 48 49 to 64 40004.1 to 40004.16 49 to 64 65 to 80 40005.1 to 40005.16 65 to 80 81 to 96 40006.1 to 40006.16 81 to 96 Output n 256 + n 1 to 16 40017.1 to 40017.16 257 to 272 17 to 32 40018.1 to 40018.16 273 to 288 33 to 48 40019.1 to 40019.16 289 to 304 49 to 64 40020.1 to 40020.16 305 to 320 65 to 80 40021.1 to 40021.16 321 to 336 81 to 96 40022.1 to 40022.16 337 to 352 Timer N 512+n 1 to 16 40033.1 to 40033.16 513 to 528 17 to 32 40034.1 to 40034.16 529 to 544 33 to 48 40035.1 to 40035.16 545 to 560 49 to 64 40036.1 to 40036.16 561 to 576 Counter n 768 + n 1 to 16 40049.1 to 40049.16 769 to 784 17 to 32 40050.1 to 40050.16 785 to 800 33 to 48 40051.1 to 40051.16 801 to 816 49 to 64 40052.1 to 40052.16 817 to 832 Relay n 1024 + n 1 to 16 40065.1 to 40065.16 1025 to 1040 17 to 32 40066.1 to 40066.16 1041 to 1056 33 to 48 40067.1 to 40067.16 1057 to 1072 49 to 64 40068.1 to 40068.16 1073 to 1088 65 to 80 40069.1 to 40069.16 1089 to 1104 81 to 96 40070.1 to 40070.16 1105 to 1120 97 to 112 40071.1 to 40071.16 1121 to 1136 113 to 128 40072.1 to 40072.16 1137 to 1152 129 to 144 40073.1 to 40073.16 1153 to 1168 145 to 160 40074.1 to 40074.16 1169 to 1184 161 to 176 40075.1 to 40075.16 1185 to 1200 177 to 192 40076.1 to 40076.16 1201 to 1216 193 to 208 40077.1 to 40077.16 1217 to 1232 209 to 224 40078.1 to 40078.16 1233 to 1248 .. .. .. 497 to 512 40097.1 to 40097.16 1521 to 1536 * MODBUS is a registered trademark of Groupe Schneider. OMRON is a registered trademark of OMRON Corporation.

168. Chapter 17 IR Remote Control 16-9 The RVS command also can be used to access the internal variables used to store ADC, DAC and PWM values obtained during the latest execution of the ADC(), setDAC or setPWM statement. These are however not system variables in the TBASIC sense. E. g. it is illegal to use ADC[2] to access the ADC channel #2 in TBASIC (you have to use the ADC(2) function instead). An 8-bit hexadecimal number is used to denote the “type” of system vari able, as shown in the following table: System Variable type System Variable type input[ ] 01 clk[ ] 08 output[ ] 02 date[ ] 09 relay[ ] 03 - 0A timer[ ] 04 ADC* 0B ctr[ ] 05 DAC* 0C timerPV[ ] 06 PWM* 0D ctrPV[ ] 07 *Not a system variable in TBASIC, but readable. Command Format R V S n n 16 1 16 0 * type Index type (01 to 0D) - denotes the type of system variable to access, index (01 to 1F) - index into the array, starting from 01. Response Format R V S 16 3 16 2 16 1 16 0 * 4 Hexadecimal Digit for 16-bit integer Example: To read the value of DATE[2] (whi ch represents the month of the RTC), send command “ RVS0902 *” and if the PLC responds with “ RVS0005 ”, it means the month is May. 16.20 Read Variable - High Speed Counter HSCPV[ ] Command Format R V H n * Channel: 1 or 2 Response Format R V H 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * 8 Hexadecimal Digit for 32-bit integer E.g. To read the value of HSCPV[2], send hostlink command “ RVH2 *”. If variable HSCPV[2] contains the value 123456 10 (=1E240 16 ), the PLC will send the response string as “ RVH0001E240 *”.

166. Chapter 17 IR Remote Control 16-7 R V # 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 ... ... Header 8 Hexadecimal Digit in 32bit IEEE format E.g. To read the value of the string variable “M$”, send host-link command “ RV$M *”. If variable M$ contains the string “Hello World”, the PLC will send the response string as “ RV$Hello World *”. 16.15 Read Variable – Single Data Memory (DM[1] to DM[4000]) Command Format R V D 16 3 16 2 16 1 16 0 * 0001 to 0FA0 (4000 10 ) Address of DM[ ] Response Format R V D 16 3 16 2 16 1 16 0 * 4 Hexadecimal Digit for 16-bit integer E.g. To read the value of DM[3600], send host-link command “ RVD0E10* ”. If variable DM[3600] contains the value 12345 10 (=3039 16 ), PLC will send the response string as “ RVD3039* ”. 16.16 Read Variable – Multiple Data Memory (DM[1] to DM[4000]) (Note: This new command is available only to Fx PLC) Command Format R V D 16 3 16 2 16 1 16 0 16 3 16 2 16 1 16 0 * Starting DM address Number of DM 0001 to 0FA0 (4000 10 ) 0001 to 0032 (50 Dec) Response Format R V D 16 3 16 2 16 1 16 0 ... ... Header 1 st Data (Hex) 4 Hexadecimal Digit for 16-bit integer 16 3 16 2 16 1 16 0 * Last data E.g. To read the value of DM[3600] to DM[3609], send host-link command “ RVD0E10000A* ”.

179. Chapter 17 IR Remote Control 16-20 Note: EZWire PLC native protocol command set now in cludes reading and writing of multiple DM and FP that are not available on F2424/F1616-BA, FMD and N ano-10 PLCs. To maintain backward compatibility with FMD and Nano-10 PLCs that only support read/write of single DM (there is no FP[ ] in these PLCs), these OMFRON host link commands may be used to r ead/write multiple DM locations in a single command. 16.48.1 Read IR Registers This command refers to Table 14.1 in Chapter 14 to map the PLC’s I/Os to OMRON IR register space from IR0 to IR519 Command Format @ d d R R n n n n c c c c Device ID Header IR Address (Dec) IR count (Hex) f f * FCS Response Format @ d d R R s s 16 3 16 2 16 1 16 0 ... ... Device ID Header Status 1 st Data (Hex) 00 – OK 15 - Bad 16 3 16 2 16 1 16 0 f f * Last data FCS E.g. To read Timer PV #1 to #7 using this command, send: “ @01RR012800074D* ” The PLC will send return a response “ @01RR00xxxxyyyyzzzz....* ” 16.48.2 WRITE IR Registers This command refers to Table 14.1 in Chapter 14 to map the PLC’s I/Os to OMRON IR register space from IR000 to IR519 Command Format @ d d W R n n n n 16 3 16 2 16 1 16 0 .... Device ID Header IR Start Addr(Dec) 1 st data 16 3 16 2 16 1 16 0 f f * Last data FCS

172. Chapter 17 IR Remote Control 16-13 16.31 Write Variable - Strings (A$ to Z$) Command Format W V $ alphabet a a ... ... a a * A,B.C....Z ASCII characters of the string (variable length) Response Format W V $ * E.g. To assign the string “ Super PLC” to the string variable P$, send hostlink command “ WV$P Super PLC* ”. 16.32 Write Variable – Floating-point (A# to Z#) Command Format W V # alphabet 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * A,B.C....Z 8 Hexadecimal Digit in 32bit IEEE format Response Format W V # * E.g. To write to A# the value 6.265599E9, send command “WV#A4FBABABABA*” where “4FBABABABA” is the IEEE 32-bit representati on of the floating-point number 6.265599E9. See TL7 Programmer’s Reference on how float number are represented using 32-bit integer in IEEE single precision format in I-TRiLOGI. 16.33 Write Variable – Singe Data Memory (DM[1] to DM[4000]) Command Format W V D 16 3 16 2 16 1 16 0 16 3 16 2 16 1 16 0 * 16-bit Index to array 16-bit Integer Data 0001 to 0FA0 (4000 10 ) Response Format W V D 0 0 0 1 * Number of DMs written to the PLC (=1) E.g. To write the value 1234 10 (=4D2 16 )to DM[1000], send hostlink command “ WVD03E804D2 *”. (1000 10 = 3E8 16 ) Note : The response to WVD command in the Nano-10, FMD and F-series was simply “WVD*” without the variable count.

169. Chapter 17 IR Remote Control 16-10 16.21 Write Inputs Command Format W I n n 16 1 16 0 * Channel # Data (00 to 0F) Response Format W I * 16.22 Write Outputs Command Format W O n n 16 1 16 0 * Channel # Data (00 to 0F) Response Format W O * 16.23 Write Relays Command Format W R n n 16 1 16 0 * Channel # Data Response Format W R * 16.24 Write Timer-contacts Command Format W T n n 16 1 16 0 * Channel # Data (00 to 07) Response Format W T *

171. Chapter 17 IR Remote Control 16-12 16.28 Write Counter Present Value (P.V.) Command Format W U n n 10 3 10 2 10 1 10 0 * Counter1=00, New PV .... Counter64=3F (Hex) Response Format W U * 16.29 Write Counter Set Value (S.V.) Command Format W u n n 10 3 10 2 10 1 10 0 * Counter1=00, New Counter SV .... Counter64=3F (Hex) Response Format W u * Note: the 2nd character is a lower case “u” instead of the upper case “U” of the “WU” command. 16.30 Write Variable - Integers (A to Z) Command Format W V I alphabet 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * A,B.C....Z 8 Hexadecimal Digit for 32-bit integer Response Format W V I * E.g. To assign variable “K” to number 56789 10 (=0DD5 16 ), send hostlink command “ WVIK00000DD5* ”.

174. Chapter 17 IR Remote Control 16-15 ... ... 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * last IEEE float data Response Format W V F 16 3 16 2 16 1 16 0 * Number of FP[ ] written to the PLC 16.37 Write Variable - System Variables System Variable type System Variable type input[ ] 01 clk[ ] 08 output[ ] 02 date[ ] 09 relay[ ] 03 - 0A timer[ ] 04 ADC* 0B ctr[ ] 05 DAC* 0C timerPV[ ] 06 PWM* 0D ctrPV[ ] 07 * Not a system variable in TBASIC Command Format W V S n n 16 1 16 0 16 3 16 2 16 1 16 0 * type Index 16-bit Integer Data type (01 to 0D) - denotes the type of system variable to access, index (01 to 1F) - index into the array, starting from 01. Response Format W V S * E.g. To set clk[1] (which represents the hour of the RTC) to 14, send the command “ WVS0801000E *” to the PLC. 16.38 Write Variable - High Speed Counter HSCPV[ ] Command Format W V H n 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * 1 or 2 8 Hexadecimal Digit for 32-bit integer Response Format

165. Chapter 17 IR Remote Control 16-6 R u 10 3 10 2 10 1 10 0 * Counter Set Value in Decimal The Set Value of the specified counter is returned in dec imal form as four byte ASCII text characters from 0000 to 9999. Note that this header contains small letter “u” instead of “U” in the “RU” command. 16.12 Read Variable - Integers (A to Z) Command Format R V I alphabet * A,B.C....Z Response Format R V I 16 7 16 6 16 5 16 4 16 3 16 2 16 1 16 0 * 8 Hexadecimal Digit for 32-bit integer E.g. To read the value of the va riable “K”, send host-link command “ RVIK * ”. If variable K contains the value 123456 10 (=1E240 16 ), the PLC will send the response string as “ RVI0001E240 * ”. 16.13 Read Variable - Strings (A$ to Z$) Command Format R V $ alphabet * A,B.C....Z Response Format R V $ a a a ... ... a a a * ASCII characters of the string (variable length) E.g. To read the value of the string variable “M$”, send host-link command “ RV$M *”. If variable M$ contains the string “Hello World”, the PLC will send the response string as “ RV$Hello World *”. 16.14 Read Variable – Floating Point (A# to Z#) Command Format R V # alphabet * A,B.C....Z Response Format

123. Chapter 11 Pulse Width Modulated Outputs 11-5 Likewise, to send a 10% positive PWM control pulse to the Servo, you will need to run the following statement: SETPWM 2, 9000, 50 ‘ Set PWM 2 output to 90% duty cycle at 50 Hz 11.4.2 Using EZWire1616 PWM Output To Control RC Servo (Opto-Isolated) You can also use the PLC’s PWM output to drive an optocoupler (such as 4N35) and the output from the optocoupler is use to provide control pulse to the RC Servo, as shown in Figure 11.5 3 (PWM2) 4 24V DC Power For PLC +V 0V OU TP UTS GND 2K2 4N35 Optoisolator 1 2 5 4 1 2 + - 1K Control +6 V 4.8V to 6V DCPower For Servo 0V RC Ser vo Figure 11.5 Opto-Isolated Interace to RC Servo In the opto-isolated interface shown above, the power supply to the PLC and that to the RC Servo are completely isolated (no common ground required). Also since the interface inverts the output signal from the PLC, no software inversion is necessary. i.e When the PLC NPN output is OFF, the “control” input to the RC Servo will be OFF, and when the PLC NPN output is ON, the “control” input to the RC Servo = +6V. Hence, to send a 5% positive PWM control pulse to the Servo, you can run the following statement: SETPWM 2, 500, 50 ‘ Set PWM 2 output to 5% duty cycle at 50 Hz Likewise, to send a 10% positive PWM control pulse to the Servo, you can run the following statement: SETPWM 2, 1000, 50 ‘ Set PWM 2 output to 10% duty cycle at 50 Hz Of course you can replace the duty cycle with a value (e.g. DM[1]) and run statement such as: SETPWM 2, DM[1], 50 ‘ Set PWM 2 output to DM[1]/100% duty cycle at 50 Hz 11.4.3 RC Servo Positioning Resolution Since the resolution on the EZWire1616 PLC’s PWM output is precise to 0.01% at 50Hz, this means that you can get a maximum of 500 discrete positions within the travel range of the RC Servo. This should be sufficiently accurate for many applications such as HVAC damper control or control of proportional valves. The actual positioning accuracy and prec ision, however, will depend on the quality of the RC Servo.

120. Chapter 11 Pulse Width Modulated Outputs 11-2 lower frequency range, the output frequency can be extrem ely accurate (less than 0.01% error). Even at 10KHz the output frequency error is less than 0.5%. Th is makes it possible to use the PWM channels to generate square wave pulses of a certain frequency. For example, in Section 17.4.3 we show you how to use the PWM output to generate the 38KHz carrier wave pulses for sending encoded IR remote commands. This enables the PLC to control your home TV, DVD player, and air conditioner! Usually it is better to select as high a frequency as possible because the resulting effect is smoother for higher frequencies. However, some systems may not respond properly if the PWM frequency is too high, in such cases a lower frequency should be selected. The TBASIC SETPWM statement controls the frequency and duty- cycle settings of the PWM channel. The EZWire1616 PLC features four channels of PWM on it s digital outputs #5 (PWM channel #1) to output #8 (PWM channel #4 – please see Chapter 6 for the pin assignment). Since all four PWM outputs are high voltage, high cu rrent outputs (24V, 4A peak , 1A continuous) they can be used to directly control the speed of a small DC motor. They can also directly drive proportional (variable position) valves whose opening is dependent on the applied voltage. Note: When using the PWM output to drive a motor or solenoid valve, please take note of the need to add a bypass diode to absorb the inductive kick that will occur when the output current to the load is turned OFF, as mentioned in Chapter 1.5.3. 11.3 Increasing Output Drive Current (Opto-Isolated) The advantage of using the PWM is that you can easily amplify the drive current to a larger load such as a larger permanent magnet DC motor by using a power transistor or power MOSFET to boost the current switching capability. If the load is of a different voltage and the load current is high, you should use an opto-isolator to isolate the PLC from the load, as in Figure 11.2 5 6 7 (PWM3) 8 12-24V DC Power For PLC +V 0V OUTPUTS GND 2K 2 + - Flyback Diode ~ B ridge R ectifier A C M 4N 3 5 Optoisolator 1 2 S D G N-channel Power MOSFET e.g . IRF5 30 ca n sin k 1 2A DC at up to DC100V max. Voltage divider to obtain approx. 10V DC at gate G. For DC48V load, choose R1 = 3.9K, R2=1K R1 R2 5 4 6 220K Figure 11.2 PWM Speed Control of a large DC Motor.

180. Chapter 17 IR Remote Control 16-21 Response Format @ d d W R s s f f * Device ID Header Status FCS 00 – OK E.g. To Write to CtrPV #1 to #2 using this command, send: “@01WR0256xxxxyyyyff*” where xxxx and yyyy are the hex values to be written to CtrPV 1 & 2. 16.48.3 Read Data Memory DM[1] to DM[4000] Command Format @ d d R D n n n n c c c c Device ID Header DM Address (Dec) DM count (Hex) f f * FCS Response Format @ d d R D s s 16 3 16 2 16 1 16 0 ... ... Device ID Header Status 1 st Data (Hex) 00 – OK 16 3 16 2 16 1 16 0 f f * Last data FCS E.g. To read DM#112 to #130 (19 words), send: “ @01RD0112001357* ” The PLC will send return a response “ @01RD00xxxxyyyyzzzz...* ” 16.48.4 WRITE Data Memory DM[1] to DM[4000] Command Format @ d d W D n n n n 16 3 16 2 16 1 16 0 .... Device ID Header DM Start Addr(Dec) 1 st data 16 3 16 2 16 1 16 0 f f * Last data FCS

22. Chapter 1 Installation Guide 1-9 All digital inputs are directly programmable in Ladder Logic, as well as in TBASIC custom functions. Some programming examples are detailed in “Chapter 3 –Digital I/Os and Internal Relays” EZWire1616 Input Input +24V 0V NP N sensor Lim it S witch Signal ( Normall y O p en ) 0V EZWire1616 Input = logic '1' when Limit Switch is closed Input = logic '1' when object is sensed Input Voltage for Logic 0: Open Circuit or +10V to +24VDC Input Voltage for Logic 1: 0V to +2.5V DC Figure 1.8 –Interfacing to Limit Switch and NPN Sensor 1.5 Digital Output Circuits 1.5.1 Electrical Specifications: Output #1 to #16 Output Driver type N-Channel power MOSFET with low r DS = 0.05 Ω Maximum Breakdown Voltage 55V Maximum Output Current: 4A Continuous Output Current 1A Output Voltage when OFF Resistor pulled up to 24V power rail Output Voltage when ON: 0.1V @1A Inductive Back EMF Bypass Yes for every output (Fl yback Diode - 30A peak inductive pulse current ) All outputs have red-color LED indicators. The EZ Wire1616 PLC employs “sinking” (NPN) type power transistors or MOSFET outputs that turn ON by sink ing current from the load to the 0V terminal. All 16 outputs are grouped together into a single row of screw less spring cage terminals. Figure 1.6 shows the wiring diagram of the digital outputs.

98. Chapter 6 Special Digital I/Os 6-1 6 SPECIAL DIGITAL I/O S 12 of the first 16 ON/OFF inputs of the EZWire1616 can be configured as “special inputs” such as High Speed Counters, Interrupts and Pulse Measurement. 12 of the 16 outputs can also be configured as PWM, or stepper motor controller/driver pulse-outputs. If these special I/Os are not used, then they can be used as ordinary ON/OFF type I/O in the l adder diagram. The High Speed Counters and Pulse measurement inputs share physica l inputs, but they can be used simultaneously as HSC and PMON (unlike M-Series). Note that if any other two special functions share the same I/O then only one of them can be active at any one time. The location of these special I/Os are tabulated as follows: Special Inputs Input # High Speed Counter Interrupt Pulse Measurement 1 Ch #1: Phase A Ch #1 Ch #1 2 Ch #1: Phase B Ch #2 Ch #2 3 Ch #2: Phase A Ch #3 Ch #3 4 Ch #2: Phase B Ch #4 Ch #4 5 Ch #3: Phase A Ch #5 Ch #5 6 Ch #3: Phase B Ch #6 Ch #6 7 - - - 8 - - - 9 - Ch #9 - 10 - Ch #10 - 11 - Ch #11 - 12 - Ch #12 - Note: While inputs 1-6 can be used simultaneously as High Speed Counters and Pulse Measurement pins, any pins defined as interrupts can only be interrupts. Special Outputs Output # Stepper Pulse/Dir outputs Stepper Driver Outputs PWM output 1 - - - 2 - - - 3 - - - 4 - - - 5 Ch #1 Direction Ch #1 A phase Ch #1 6 Ch #1 Pulse Ch #1 A phase Ch #2 7 - Ch #1 B phase Ch #3 8 - Ch #1 B phase Ch #4 9 Ch #2 Direction Ch #2 A phase - 10 Ch #2 Pulse Ch #2 A phase - 11 - Ch #2 B phase - 12 - Ch #2 B phase - 13 Ch #3 Direction Ch #3 A phase - 14 Ch #3 Pulse Ch #3 A phase - 15 - Ch #3 B phase - 16 - Ch #3 B phase - These special I/Os therefore share the same electric al specifications as the ON/OFF type I/Os, which have already been described in the Chapter 1 - Installa tion Guide. We will describe each of these special I/Os in greater details in the following chapters.

113. Chapter 10 Stepper Motor Control 10-4 The direction pin is turned ON when the motor mo ves in the negative direction and turned OFF when the stepper motor moves in the positive direction. The STEPMOVEABS command makes it extremely simple to position the motor at an absolute location, while the STEPMOVE command lets you implement incremental moves in either direction for each channel. 10.3.1 Interfacing to 5V Stepper Motor Driver Inputs Some stepper motor drivers accept only 5V signals from the stepper motor controller. In such a case, you need to determine whether the driver’s inputs are opto- isolated. If they are, then you can simply connect a 2.2K current limiting resistor in series with the path from the PLC’s output to the driver’s inputs, as shown in Figure 10.4. Figure 10.4 However, if the stepper motor driver input is onl y 5V CMOS level and non opto-isolated, then you need to convert the 12-24V outputs to 5V. This can be achiev ed using a low cost transistor such as a 2N4403. A better way is to use an opto-isolator with a logic le vel output, as shown in Figure 10.5. This provides a galvanic isolation between the PL C and the stepper motor driver. 5 6 7 8 12-24V DC Power Supply for PLC +V 0V OUTPUTS GND 2K2 resistor (2.2K) Logic output Optoisolator H11L2 or H11L3 (Q ualit y T echnology) 1 2 5 4 +5V To 5V CMOS stepper driver input ( 5mA max ) 6 0V (Stepper’s supply) Figure 10.5 Conversion of EZWire1616 outputs to 5V logic level 5 7 8 +24V 12-24V DC Power Sl for PLC +V 0 V EZWire PLC OUTPUTS GND Dire ction Select Inpu t S tepping Pulse Inpu t Stepper Motor Driver Cal culation : I F = 10mA R = (V - 5)/0.01 e.g. for V=24V, R = (24-5)/0.01 =1.9K Select R=2K2 Rating = 19 2 / 2200 = 0.16W Use 0.5W resistor. R R I f I f PLC’s Powe r Supply 6 G ND

154. Chapter 15 Host Link Communication Protocol 15-6 15.5 RS485 Primer 15.5.1 RS485 Network Interface Hardware The built-in RS-485 interface allows the Fx PLCs to be networked together using very low cost twisted- pair cables. Since the Fx PLCs are fitted with a 1/8-power RS485 driver such as the 75HVD3082, up to 256 devices can be connected together. The twisted-pai r cable goes from node to node in a daisy chain fashion and should be terminated by a 120-ohm resistor as shown below. Host Computer with RS 485 or FMD Twisted pair RS485 network cable 120 Terminating resistor 560 560 +5V 0V + _ + + + + _ _ _ _ RS485 FX1616 RS485 Nano10 RS485 FX PLC RS485 Figure 15.2 Note that the two wires are not interchangeable so they must be wired the same way to each controller. The maximum wire length should not be more than 1200 meters (4000 feet). RS-485 uses balanced or differential drivers and receivers, which means that the logic state of the transmitted signal depends on the differential voltage between the two wires and not on the voltage with respect to a common ground. As there will be times when no transmitters are active (which leaves the wi res in "floating" state), it is good practice to ensure that the RS-485 receivers will indicate to the CPUs that there is no data to receive. In order to do this, we should hold the twist ed pair in the logic '1' state by applying a differential bias to the lines using a pair of 560 Ω to 1K Ω biasing resistors connected to a +9V (at least +5V) and 0V supply as shown in Figure 15-2. Otherwise, random noise on the pair could be falsely interpreted as data. The two biasing resistors are necessary to ensur e robust data communication in actual applications. Some RS485 converters may already have biasing bu ilt-in so the biasing resistors may not be needed. However, if the master is a EZWire1616 then you should us e the biasing resistor to fix the logic states to a known state. Although in a lab environment the PLCs may be able to communicate without the biasing resistors, their use is strongly recommended for industrial applications. 15.5.2 Protection of RS485 Interface The simple, direct multi-drop wiring shown in Figure 15-2 will work well if all the networked PLCs are in close proximity and they all share a common power s upply. They will even work for long distance as long as there are no wiring errors. However, in an indus trial environment, the PLCs are most likely far apart and may each have their own power supply. Since processes are often modified regularly, should somebody on one occasion by mistake short one of the PLC’s RS485 to high voltage, all the PLCs connected to the same RS485 wiring will be fried simultaneous ly. This can result in very costly down time for the whole process because all of the PLCs connected to the network will need to be repaired. Hence, for networking over long distances and involving more than a few PLCs, it is important to either strengthen or protect the RS485 interface, as described below: 1. You can replace the standard RS485 driver (75H VD3082) on the PLC with a fault-tolerant RS485 driver IC; part number LT1785AIN8. This 8 pi n IC is made by Linear Technology and can

151. Chapter 15 Host Link Communication Protocol 15-3 Host Computer The F-Series PLC Send Ctrl - E (05H) and wait for echo Send Command string to controller Wait for response Ready to process command: return Ctrl - E (05H) Execute command. Return Response string to host A ccept Response Check for errors Figure 15.1 15.4 MULTI-POINT COMMUNICATION SYSTEM In this system, one host computer may be connected to either a single PLC (via either RS232 or RS485) or multiple PLCs on an RS485 network. 15.4.1 Command/Response Fram e Format (Multi-point) @ n n x x .... .... .... x x * Device ID Header Data FCS Terminator Each command frame starts with the character "@ " and two-byte hexadecimal representation of the controller's ID (00 to FF), and ends with a two-byte "Frame Check Sequence" (FCS) and the terminator. FCS is provided for detecting communication errors in the serial bit-stream. If desired, the command frame may omit calculating the FCS simply by putti ng the characters "00" in place of the FCS. Note : we call “00” the “wildcard” FCS, which is availabl e when the PLC is in “auto protocol” mode. This is to facilitate easy testing of the multi-point protocol. However, the wildcard FCS can be disabled if the PLC has executed the SETPROTOCOL n , 5 to put its COMM port n into pure native mode. In that case you will have to supply the actual FCS to your command string.

134. Chapter 14 Serial Communications 14-2 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 9 9 Modem (Female DB9) FX2424 COMM1 (Female DB9) Special cable Figure 14.2 Connecting COMM1 to a MODEM Pin 4 and 6 are handshaking signals whose presenc e may be required by some modems to work properly, so these pins are connec ted as shown in the diagram. 14.3 COMM2: RS232C Port with Male DB9 Connector This port is configured as a DTE (Data Terminal Equipment) and is designed to connect directly to DCE configured devices such as other PLCs, modems, barcode scanners, Servo Controller/Driver, etc. without the need for a null modem cable. COMM2 co mmunicates with the host computer at a default baud rate of 38,400 bit-per-second with 8 data bits, 1 stop bit and no parity . The communication baud rate can be changed in software from 1200 bps to 115.2K or 230.4K bps, which is compatible with most PCs and industrial equipment. The COMM2 port is the secondary communication port and would typically be used to interface to other control equipment. The pin connections with the host PC require you to make a special cable which swaps the transmit and receive signals, as follows: 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 9 9 Modem (Female DB9) FX2424 COMM1 (Female DB9) Special cable Figure 14.3 Connecting COMM2 to a PC However, to connect COMM2 to DCE device (e.g., a modem), you can use a straight through cable connection (just like connecting COMM1 to a PC) EZWire1616 COMM1 (Male DB9) Host PC RS232 or USB-RS232 Converter (Male DB9) EZWire1616 COMM1 (Female DB9)

10. USER MANUAL Page ix 16.14 Read Variable – Floati ng Point (A# to Z#)...................................................................... 16-6 16.15 Read Variable – Single Data Memory (DM[1] to DM[ 4000]) .......................................... 16-7 16.16 Read Variable – Multiple Data Memory (DM[1] to DM [4000]) ....................................... 16-7 16.17 Read Variable – Single Floating Point Array FP[1 ] to FP [1000]................................... 16-8 16.18 Read Variable – Multiple Floati ng Point Data FP [1] to FP[1000] ................................. 16-8 16.19 Read Variable - Sy stem Vari ables .................................................................................. 16-8 16.20 Read Variable - High Sp eed Counter HSCPV[ ]............................................................. 16-9 16.21 Write I nputs................................................................................................................... .. 16-10 16.22 Write Ou tputs.................................................................................................................. 16-10 16.23 Write Re lays ................................................................................................................... . 16-10 16.24 Write Timer- contact s...................................................................................................... 16-10 16.25 Write Counter -contact s ................................................................................................. 16-11 16.26 Write Timer Presen t Value (P.V.) .................................................................................. 16-11 16.27 Write Timer Set Value (S.V.) .......................................................................................... 16-11 16.28 Write Counter Presen t Value (P.V.) .............................................................................. 16-12 16.29 Write Counter Se t Value (S.V.) ...................................................................................... 16-12 16.30 Write Variable - In tegers (A to Z) .................................................................................. 16-12 16.31 Write Variable - St rings (A$ to Z$) ................................................................................ 16-13 16.32 Write Variable – Floati ng-point (A# to Z#).................................................................... 16-13 16.33 Write Variable – Singe Data Memory (DM[1] to DM[ 4000])......................................... 16-13 16.34 Write Variable – Multiple Data Memory (DM[1] to DM [4000]) ..................................... 16-14 16.35 Write Variable – Singe Float Array (FP[1] to FP[ 1000]) .............................................. 16-14 16.36 Write Variable – Multiple Floa t Array (FP[1] to FP[ 1000])........................................... 16-14 16.37 Write Variable - Sy stem Vari ables ................................................................................ 16-15 16.38 Write Variable - High Sp eed Counter HSCPV[ ] .......................................................... 16-15 16.39 Halting th e PLC............................................................................................................... 16-16 16.40 Resume PLC Operation ................................................................................................. 16-16 16.41 Read Anal og Input.......................................................................................................... 16-16 16.42 Read EEPROM In teger Data .......................................................................................... 16-17 16.43 Read EEPROM String Data............................................................................................ 16-17 16.44 Write Anal og Out put ...................................................................................................... 16-18 16.45 Write EEPROM In teger Data .......................................................................................... 16-18 16.46 WRITE EEPROM String Data ......................................................................................... 16-18 16.47 Force Set/Clear Si ngle I/O Bit........................................................................................ 16-19 16.48 Using OMRON Host Link Commands .......................................................................... 16-19 16.48.1 Read IR R egister s........................................................................................................ 16-20 16.48.2 WRITE IR R egisters..................................................................................................... 16-20

8. USER MANUAL Page vii 11.4 Position Control Of RC Servo Motor .................................................................................. 11-3 11.4.1 Using EZWire1616 PWM Output To Control RC Servo (Non-Isol ated) ........................ 11-4 11.4.2 Using EZWire1616 PWM Output To C ontrol RC Servo (O pto-Isol ated) ....................... 11-5 11.4.3 RC Servo Positioni ng Resolu tion................................................................................... 11-5 12 REAL TIME CLOCK 12-1 12.1 Introduc tion ................................................................................................................... ........ 12-1 12.2 TBASIC variables Used for Real Ti me Clock ..................................................................... 12-1 12.3 RTC Error Status On Ladde r Logic..................................................................................... 12-1 12.4 Setting the RTC Using TRiLOGI So ftware.......................................................................... 12-2 12.5 Setting the RTC Using T BASIC ........................................................................................... 12-2 12.6 Setting the RTC from In ternet Time Server........................................................................ 12-3 12.7 Setting up an Alarm Event in TBASIC ................................................................................ 12-3 12.8 RTC Calib ration................................................................................................................ ..... 12-3 12.9 Troubleshooting the RTC .................................................................................................... 12-4 13 LCD DISPLAY PROGRAMMING 13-1 13.1 SETLCD Co mmand............................................................................................................... 13-1 13.2 Special Commands For LCD Di splay ................................................................................. 13-1 13.3 Displaying Numeric Variable With Multip le Digits ............................................................ 13-1 13.4 Displaying Fl oating- point..................................................................................................... 13-2 14 SERIAL COMMUNICATIONS 14-1 14.1 Introduc tion:.................................................................................................................. ........ 14-1 14.2 COMM1: RS232C Port with Female DB9 Connect or ......................................................... 14-1 14.3 COMM2: RS232C Port with Male DB9 Connect or ............................................................. 14-2 14.4 COMM3: Two-wi re RS485 Port ......................................................................................... 14-3 14.4.1 PROGRAMMING A ND MONITO RING.......................................................................... 14-3 14.4.2 Accessing 3 rd Party RS485-bas ed Devi ces ................................................................... 14-4 14.4.3 Interfacing Other Devices to M odbus Host or to the In ternet ........................................ 14-4 14.4.4 Distributed Contro l ......................................................................................................... 14-4 14.5 Changing Baud Rate and Communication Formats: Use of the SETBAUD Statement 14-4 14.6 Support of Multiple Co mmunication Pr otocols................................................................. 14-6 14.7 Accessing the COMM Ports fr om within TBASIC ............................................................. 14-7 14.8 Using The PLC As a Modbus / Omron Slav e – SCADA, HMI Applications............. 14-9 14.8.1 MODBUS ASCII Prot ocol S upport ................................................................................. 14-9 14.8.1.1 BIT ADDRESS MAPPING ....................................................................................... 14-11 14.8.1.2 WORD ADDRESS MAPPING ................................................................................. 14-12 14.8.2 MODBUS RTU Prot ocol S upport ................................................................................. 14-12 14.8.3 OMRON Host Link Command Support ..................................................................... 14-12 14.8.4 Application Example: Interf acing to SCAD A Software................................................. 14-13 14.9 Using The PLC As a Modbus Master ................................................................................ 14-14 14.9.1 EZWire1616 PLC As MO DBUS RTU Master .............................................................. 14-14

11. USER MANUAL Page x 16.48.3 Read Data Memory DM[1] to DM[ 4000] ...................................................................... 16-21 16.48.4 WRITE Data Memory DM[1] to DM[ 4000] ................................................................... 16-21 16.49 Testing of Host Link Commands .................................................................................. 16-22 16.50 Visual Basic Sa mple Program....................................................................................... 16-23 16.51 Inter-PLC Networking Us ing NETCMD $ Command .................................................... 16-23 16.52 Inter PLC Networking Us ing MODBUS Pr otocols....................................................... 16-24 17 LIGHT DIMMER CONTROL 17-2 17.1 Introduc tion ................................................................................................................... ........ 17-2 17.2 Control of 120V/ 240V AC TR IAC ......................................................................................... 17-3 17.3 Zero-crossing Detect ion ...................................................................................................... 17-4 17.4 Programming Light Dimmer C ontrol .................................................................................. 17-4 17.4.1 Enable Zero-Cro ssing Inte rrupt ..................................................................................... 17-4 17.4.2 Programming Indivi dual Dimme r C hannel ..................................................................... 17-4 17.4.3 Programming Example .................................................................................................. 17-5 18 EXTENDED FILE SYSTEM 18-2 18.1 Introduc tion ................................................................................................................... ........ 18-2 18.1.1 Advantage of Using Data Up loading.............................................................................. 18-3 18.2 File Structure and File Naming of The Extended File System ......................................... 18-3 18.3 Transferring Files To The PLC’s We b Server .................................................................... 18-4 18.4 Accessing The Extended Data Files Usi ng TBASIC ......................................................... 18-4 18.4.1 Open A File For Writing Ne w Data ................................................................................ 18-4 18.4.2 Open A File For Appending Data To The End Of The File............................................ 18-5 18.4.3 Delete A File.................................................................................................................. . 18-5 18.4.4 Open A File For R eading ............................................................................................... 18-5 18.5 Setting Up The File Zilla FTP Server.................................................................................... 18-7 18.5.1 Download and Set up FTP Se rver .................................................................................. 18-7 18.5.2 Testing Connection To The FTP Server Us ing Te lnet................................................... 18-9 18.6 Uploading File From PLC to F ileZilla FTP Serv er Dir ectory........................................... 18-12 18.6.1 Overview of T he FTP Pr otocol..................................................................................... 18-12 18.6.2 PLC FTP Upl oad Proc edure ........................................................................................ 18-12 18.6.3 Monitoring The FTP Upload Pr ogress ......................................................................... 18-13 18.7 Setting Up A FTP Server Behind a Window s Firewall. ................................................... 18-13 18.8 Uploading File From PLC to F ileZilla FTP Serv er Dir ectory........................................... 18-15 18.8.1 Overview of T he FTP Pr otocol..................................................................................... 18-15 18.8.2 PLC FTP Upl oad Proc edure ........................................................................................ 18-16 18.8.3 Monitoring The FTP Upload Pr ogress ......................................................................... 18-16 18.9 Setting Up A FTP Server Behind a Window s Firewall. ................................................... 18-18 19 USING PLC AS A MODBUS/TCP GATEWAY 19-1 19.1 Introduc tion ................................................................................................................... ........ 19-1 19.2 Application Ideas for Modbus/TCP Gateway ..................................................................... 19-1 19.3 Configuring The PLC As Modbus/TCP Gateway ............................................................... 19-1

7. USER MANUAL Page vi 6 SPECIAL DIGITAL I/OS 6-1 7 HIGH SPEED COUNTERS 7-1 7.1 Introduc tion ................................................................................................................... .......... 7-1 7.2 Enhanced Quadra ture D ecoding........................................................................................... 7-2 7.3 Interfacing to 5V type Quadrature Encoder ......................................................................... 7-2 8 FREQUENCY / SPEED MEASUREMENT 8-1 8.1 Programming of PM Input...................................................................................................... 8-1 8.2 Applicat ions ................................................................................................................... ......... 8-2 8.2.1 Measuring RPM Of A Motor ................................................................................................. 8-2 8.2.2 Measuring Transducer with VCO Outputs ........................................................................... 8-2 8.2.3 Measuring Transducer with PWM Outputs .......................................................................... 8-2 8.3 Frequency Measurement on Hi gh Speed Count er Inputs .................................................. 8-3 9 INTERRUPTS 9-1 9.1 Input Inte rrupts ............................................................................................................... ........ 9-1 9.2 Periodic Timer Inte rrupt (PTI) ............................................................................................. 9-2 9.3 Power Failure In terrupt (PFI) ................................................................................................. 9-2 10 STEPPER MOTOR CONTROL 10-1 10.1 Technical Speci fications: .................................................................................................... 10-1 10.2 Stepper Moto r Driv er ........................................................................................................... . 10-1 10.2.1 Stepper Motor Wiring Types .......................................................................................... 10-1 10.2.2 Damping Circuits (Inductive Bypa ss)............................................................................. 10-2 10.3 Stepper Motor Contro ller ..................................................................................................... 10-3 10.3.1 Interfacing to 5V Stepper Motor Driv er Inputs ............................................................... 10-4 10.4 Programming Stepper Control Ch annel............................................................................. 10-5 10.4.1 Introduc tion ................................................................................................................... . 10-5 10.4.2 Full-Step Driv er Mode: ................................................................................................... 10-5 10.4.3 Half-Step Dr iver Mode: .................................................................................................. 10-5 10.4.4 Setting the Accele ration Pr operti es ............................................................................... 10-5 10.4.5 Using the STEPM OVE Co mmand ................................................................................. 10-6 10.4.5.1 Example: PLC as a Motor Controller ..................................................................... 10-6 10.4.5.2 Example: PLC as a Full-Step Motor Driver ........................................................... 10-7 10.4.5.3 Example: PLC as a Half-Step Motor Driver ........................................................... 10-7 10.4.6 Using the STEPM OVEABS Co mmand .......................................................................... 10-7 10.4.6.1 Example: PLC as a Motor Controller ..................................................................... 10-8 10.4.6.2 Example: PLC as a Full-Step Motor Driver ........................................................... 10-8 10.4.6.3 Example: PLC as a Half-Step Motor Driver ........................................................... 10-8 10.4.7 Demo Program for St epper Motor Contro l..................................................................... 10-8 11 PULSE WIDTH MODULATED OUTPUTS 11-1 11.1 Introduc tion ................................................................................................................... ........ 11-1 11.2 EZWire1616 PLC PW M Outputs .......................................................................................... 11-1 11.3 Increasing Output Drive Curre nt (Opto- Isolated) ........................................................... 11-2

4. USER MANUAL Page iii TABLE OF CONTENTS Page # 1 INSTALLATION GUIDE FOR EZWIRE1616 PLC 1-1 1.1 Overview ....................................................................................................................... ........... 1-1 1.2 Physical Mount ing & Wi ring .................................................................................................. 1-3 1.2.1 Wiring Pr ocedur e............................................................................................................... ... 1-3 1.2.2 Analog I/O Ports: .............................................................................................................. .... 1-6 1.2.3 Digital I/O Ports: ............................................................................................................. ...... 1-7 1.3 Power Supply ................................................................................................................... ....... 1-7 1.4 Digital Input Circ uits......................................................................................................... ...... 1-8 1.5 Digital Output Circ uits........................................................................................................ .... 1-9 1.5.1 Electrical Spec ificati ons:..................................................................................................... .. 1-9 1.5.2 Digital Output Wiring Di agram............................................................................................ 1-10 1.5.3 Inductive Load ................................................................................................................. ... 1-11 1.6 LCD Displa y Port ............................................................................................................... ... 1-11 1.6.1 Programming The LCD Disp lay ......................................................................................... 1-11 1.7 Program and Da ta Memory .................................................................................................. 1-11 1.7.1 Program Memo ry................................................................................................................ 1-11 1.7.2 Non Volatile FRAM Me mory............................................................................................... 1-12 1.7.3 Volatile Da ta Me mory ......................................................................................................... 1-12 1.7.4 Extended Data F ile Storage ............................................................................................... 1-12 1.8 DIP SWIT CHES................................................................................................................... ... 1-13 1.8.1 Usefulness of SW1-4.......................................................................................................... 1-13 1.9 Real Time Cl ock Ba ttery ....................................................................................................... 1-13 1.10 CPU Status Indicat ors .......................................................................................................... 1-14 1.10.1 RTC Error (G reen LE D) ................................................................................................. 1-14 1.10.2 Pause (R ed LE D) ........................................................................................................... 1-14 1.10.3 Run Error (Red LE D) ..................................................................................................... 1-14 2 ETHERNET PORT 2-1 2.1 Configuring The Ethernet Port .............................................................................................. 2-1 2.1.1 IP Address ..................................................................................................................... ....... 2-2 2.1.2 GateWay IP Addr ................................................................................................................ . 2-3 2.1.3 SMTP Server IP Addr ess ..................................................................................................... 2-3 2.1.4 DNS Server IP Addr ess........................................................................................................ 2-4 2.1.5 No. of Connections (F Server/ M odbus TC P) ....................................................................... 2-4 2.1.6 FServer Po rt No. ............................................................................................................... ... 2-4 2.1.7 Modbus/TCP Secondar y Port No......................................................................................... 2-5 2.1.8 LAN S peed ...................................................................................................................... ..... 2-5 2.1.9 Node Na me ...................................................................................................................... .... 2-5 2.1.10 Username and Password (FServer only)......................................................................... 2-5 2.1.11 Use Username/Passw ord (Yes /No)?............................................................................... 2-5 2.1.12 Access Level ................................................................................................................... . 2-5 2.1.13 Advanced Conf iguration................................................................................................... 2-6 2.1.14 Standalone Version of Ethernet Configurati on Software ................................................. 2-6

9. USER MANUAL Page viii 14.10 Using Modem to Remotely Program/Monito r The PLC .............................................. 14-15 14.10.1 Wiri ng ......................................................................................................................... .. 14-15 14.10.2 Progra mming................................................................................................................ 14-15 15 HOST LINK PROTOCOL INTRODUCTION 15-1 15.1 Multiple Communicat ion Prot ocols .................................................................................... 15-1 15.2 Native Mode Communi cation Prot ocols............................................................................. 15-1 15.3 Point-To-Point Comm unication Format ............................................................................. 15-1 15.3.1 Command/Response Frame Form at (Point to Point) .................................................... 15-2 15.3.2 Error Respons e Format ................................................................................................. 15-2 15.4 MULTI-POINT COMM UNICATION SYSTEM ........................................................................ 15-3 15.4.1 Command/Response Frame Fo rmat (Multi -point) ......................................................... 15-3 15.4.2 Calculation of FCS ......................................................................................................... 15-4 15.4.3 Communication Procedur e ............................................................................................ 15-4 15.4.4 Framing Erro rs ............................................................................................................... 15-5 15.4.5 Command E rrors ............................................................................................................ 15-5 15.4.6 SHOULD YOU USE POINT-TO-POINT OR MULTI-POIN T PROTOCOL? .................. 15-5 15.5 RS485 Pr imer ................................................................................................................... ..... 15-6 15.5.1 RS485 Network Inte rface Ha rdwa re .............................................................................. 15-6 15.5.2 Protection of RS 485 Interf ace........................................................................................ 15-6 15.5.3 Single Master RS485 Ne tworking F undamental s.......................................................... 15-7 15.5.4 Multi-Master RS485 Ne tworking F undamental s ............................................................ 15-8 15.5.4.1 Multiple Access with Collision Detection ................................................................... 15-8 15.5.4.2 Token Awardi ng Scheme .......................................................................................... 15-9 15.5.4.3 Rotating Mast er Signal .............................................................................................. 15-9 15.5.5 TROUBLE-SHOOTING AN RS485 NE TWORK ............................................................ 15-9 16 HOST LINK PROTOCOL FORMAT 16-1 16.1 Device ID Read................................................................................................................. ..... 16-1 16.2 Device ID Write................................................................................................................ ...... 16-1 16.3 Read Digital I nput Cha nnels................................................................................................ 16-1 16.3.1 Definition of Input C hannels........................................................................................... 16-2 16.4 Read Digital Ou tput Ch annels............................................................................................. 16-2 16.5 Read Internal Relay Ch annels ............................................................................................. 16-3 16.5.1 Definition of Internal Relay Channel Numbers .............................................................. 16-3 16.6 Read Timer Contact s............................................................................................................ 16-3 16.6.1 Definition of Timer-Cont act Channel Numbers .............................................................. 16-4 16.7 Read Counter Cont acts........................................................................................................ 16-4 16.7.1 Definition of Counter-C ontact Channel Number s: ......................................................... 16-4 16.8 Read Timer Present Value (P.V.) ...................................................................................... 16-4 16.9 Read Timer Set Value (S.V.)................................................................................................. 16-5 16.10 Read Counter Presen t Value (P.V.)................................................................................. 16-5 16.11 Read Counter Se t Value (S.V.) ........................................................................................ 16-5 16.12 Read Variable - In tegers (A to Z)..................................................................................... 16-6 16.13 Read Variable - St rings (A$ to Z$) .................................................................................. 16-6

5. USER MANUAL Page iv 2.2 Connecting Ethernet to the PLC ........................................................................................... 2-8 2.2.1 Connecting the PLC to a Local Area Networ k ..................................................................... 2-8 2.2.2 Setting up Ethernet Communication Directly Between a PC and a F-series PLC............... 2-9 2.3 On-line Monitoring/Progr amming via FServer................................................................... 2-15 2.4 Using F-series PLC “Netwo rk Services” Commands ....................................................... 2-16 2.4.1 Get our IP Address............................................................................................................. 2-18 2.4.2 DNS command: Resolving Domain Name into IP Address ............................................... 2-18 2.4.3 Send Em ail ..................................................................................................................... .... 2-19 2.4.4 Open Connection to Remote FServer or TLServer to Use NE TCMD$.............................. 2-20 2.4.5 Remote File Services ......................................................................................................... 2-21 2.4.6 Other Network Se rvices Tags ............................................................................................ 2-21 2.5 MODBUS/TCP Server and Client C onnectio n.................................................................... 2-22 2.5.1 Connecting To The PLC’s MODBUS/TCP Server ............................................................. 2-22 2.5.1.1 Bit Address Mapping ................................................................................................. 2-22 2.5.1.2 Word Address Mapping ............................................................................................. 2-24 2.5.2 MODBUS/TCP A ccess Security......................................................................................... 2-24 2.5.3 Making a Modbus/TCP Client Connecti on to Other Modbus /TCP Server ......................... 2-26 2.6 Getting data from Internet: Connecti ng to The Internet Time Server ............................. 2-28 2.7 Web Service: Accessing PLC' s data from MS Excel ........................................................ 2-29 2.8 Accessing The PLC fr om Internet....................................................................................... 2-31 2.8.1 Small Local Area Network Using Consumer Grade Ne twork R outer ................................ 2-31 2.8.2 Large Corporate Local Area Ne twork ................................................................................ 2-32 2.9 Installing a Control Web Page Into the EZ Wire PLC ......................................................... 2-33 2.9.1 Installing the F ileZilla progr am ........................................................................................... 2-33 2.9.2 Configure FileZilla to Comm unicate with the EZWi re1616 ................................................ 2-33 2.9.3 Transferring and Retrieving Files from the PLC Web Se rver ............................................ 2-36 2.9.4 Troubleshooting FileZilla F ile Transfer Problems .............................................................. 2-37 2.10 Accessing and Customizing the HTML Web Interface for Control and Monitoring ...... 2-39 2.10.1 Next Generation of S uper PLC Web Control ................................................................. 2-39 3 PROGRAMMING I/O AND INTERNAL RELAYS 3-1 3.1 Introduc tion ................................................................................................................... .......... 3-1 3.2 Programming DIO wi th Ladde r Logic ................................................................................... 3-1 3.2.1 For Physic al I/O ............................................................................................................... ..... 3-1 3.2.2 For Internal Rela ys (Non-Lat ching) ...................................................................................... 3-1 3.2.3 For Internal Rela ys (Latching).............................................................................................. 3-1 3.2.4 Programming Ex amples: ...................................................................................................... 3-1 3.2.4.1 Example 1 – Edit ing Label Names .............................................................................. 3-1 3.2.4.2 Example 2 – Creating a Si mple Ladder Logi c Circ uit.................................................. 3-2 3.2.4.3 Example 3 – Creating a Lat ching Relay Circuit........................................................... 3-2 3.3 Programming DIO in a Custom Function ............................................................................. 3-2 3.3.1 Editing Label Name s: ........................................................................................................... 3-3 3.3.2 Controlling I/O from Custom F unctions: ............................................................................... 3-3 3.3.3 Example 1 – Turn on/off an Output ...................................................................................... 3-4 3.3.4 Example 2 – T oggle an Ou tput ............................................................................................ 3-4 3.3.5 Example 3 – Test the Status of an Out put ........................................................................... 3-4

6. USER MANUAL Page v 4 TIMERS, COUNTERS AND SEQUENCERS 4-1 4.1 Introduc tion ................................................................................................................... .......... 4-1 4.1.1 Timer Coils .................................................................................................................... ....... 4-1 4.1.2 Counter Coils.................................................................................................................. ...... 4-1 4.1.3 Sequencer s ..................................................................................................................... ..... 4-1 4.2 Programming timers and counters on La dder Logic.......................................................... 4-2 4.2.1 For Ti mers ..................................................................................................................... ....... 4-2 4.2.2 For Count ers ................................................................................................................... ..... 4-2 4.2.3 Example 1 – Creating a Simple Timer Circuit in Ladder Logic ............................................ 4-2 4.2.4 Example 2 – Creating a Simple Counter Circuit in Ladder Logic......................................... 4-3 4.3 Programming timers and count ers in Cust om Function.................................................... 4-4 4.3.1 Timers and Counters Present Values .................................................................................. 4-4 4.3.2 Inputs, Outputs, Relays, Ti mers and Counter s Cont acts..................................................... 4-4 4.3.3 Changing The Timer and Counter Set Va lues in a Cust om Func tion.................................. 4-4 4.3.4 Controlling a Timer or Counter in a Custom Function.......................................................... 4-4 4.4 Programming Sequencer s on Ladde r Logic........................................................................ 4-5 4.4.1 Introduc tion................................................................................................................... ........ 4-5 4.4.2 Advance Sequencer - [AVseq] ............................................................................................. 4-6 4.4.3 Resetting Sequencer - [R Sseq]............................................................................................ 4-6 4.4.4 Setting Sequencer to Step N - [S tepN] ................................................................................ 4-6 4.4.5 Reversing a Sequenc er........................................................................................................ 4-6 4.4.6 Program Ex ample................................................................................................................ . 4-6 4.5 Programming Sequencers in Custom Function.................................................................. 4-7 5 ANALOG INPUTS AND OUTPUTS 5-1 5.1 Analog Powe r Supply............................................................................................................ . 5-1 5.2 Analog I nputs.................................................................................................................. ........ 5-2 5.2.1 A/D #1 to 8.................................................................................................................... ........ 5-2 5.2.2 Interfacing to two-wi re 4-20mA sensors............................................................................... 5-3 5.2.3 Using Potentiometer to Set Pa ramete rs............................................................................... 5-4 5.2.4 Reading Analog Input Data .................................................................................................. 5-4 5.2.5 Moving Av erage ................................................................................................................. .. 5-5 5.2.6 Scaling of Analog Data......................................................................................................... 5-5 5.3 Temperature Measurement Using Anal og Inputs ............................................................... 5-6 5.3.1 Thermistor Temper ature S ensors ........................................................................................ 5-6 5.3.2 Using LM34 Semic onductor S ensor..................................................................................... 5-7 5.3.3 Using Ther mocoupl e ............................................................................................................ 5-8 5.3.4 Using PT100 Temper ature S ensor ...................................................................................... 5-8 5.4 Analog Ou tputs................................................................................................................. ...... 5-9 5.4.1 The Benefits of Current Source Anal og Outputs................................................................ 5-10 5.4.2 Programming The Analog Ou tput ...................................................................................... 5-11 5.5 Calibration of ADC and DAC & Mo ving Average Definition ............................................. 5-12 5.5.1 ADC Ca lib...................................................................................................................... ..... 5-12 5.5.2 ADC Zero Offset................................................................................................................ . 5-13 5.5.3 DAC Ca lib...................................................................................................................... ..... 5-13 5.5.4 DAC Zero Offset................................................................................................................ . 5-14 5.5.5 A/D Movi ng Avg................................................................................................................. . 5-14

Views

  • 1737 Total Views
  • 1377 Website Views
  • 360 Embeded Views

Actions

  • 0 Social Shares
  • 0 Likes
  • 0 Dislikes
  • 0 Comments

Share count

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+

Embeds 2

  • 1 webcache.googleusercontent.com
  • 1 www.google.com.vn