Home
CX-Programmer Operation Manual
Contents
1. Nesting With CX Programmer Ver 6 0 and later versions a function block can be called from another function block i e nesting is supported Function blocks can be nested up to 8 levels including the function block called from the pro gram The calling function block and called function block can be either ST lan guage ladder language or either combination of the two Program NEEE FBO Ladder diagram FB1 Ladder diagram FB7 Ladder diagram FB8 Ladder diagram 0 FBO La INSTANCE_FB1 J 77 7 INSTANCE_FB2 INSTANCE_FB8 pe i i E FB1 lt 2nd FB2 a FB8 T gth lie FBO ST FB1 ST FB7 ST FB8 ST amples Ae Example _ 77 Examples 7 Example INSTANCE_FB1 A FB1__OUT1 B gt FB1_IN1 INSTANCE_FB2 INSTANCE_FB8 INSTANCE_FB1 INSTANCE_FB2 etc are the FUNCTION BLOCK data type instance names Note Any combination of ladder diagrams and structured text programming can be used between the called and the calling function block 50 The function block nesting levels can also be displayed in a directory tree for mat with the FB Instance Viewer function SUF Target_1 FB Operation_module o H Conditiond1 Condition_check HAF sample Operation module JEF Conditiond1 Condition_check The nested function blocks function block definitions are included in the func tion block library file cxf containing the
2. Select Register in Watch o l Program Name NewProgram1 NewProject 4 2 NewPLC1 CJ1M Of Section Name Section1 H t Symbols Windows 10 Table sample or Setti ee Tha _Dnet211_GetinPower_Stat Copy the instance and E A Programs 3 NewProgran Symbols Section EAF Function Blocks F _cPuoo3_t paste it in the Watch Window PEE i or Right click an empty row in the Watch Window and select Register in Watch Windows BOOL BOOL EN ENO INT YF Dnet211_ F Copy_of_C UF FunctionBlac teed ste Function Block Definition ll Reaister in Watch Window Find Bit Addresse Find tdeoooa i atii x Find FB variables registr x amp cut PLC M COP FB Instance s ample x amp Pastt Delet Usage Internal X Rung Data Type All X Address or Va Inset Data Type Comment Name P_ER BOOL Error Bit I NewPLC1 sample CFOO3 BOOL Internal i Ok_Bit BOOL Range Che NewPLC1 sample 516 06 BOOL Internato register F NG_Bit BOOL Range Che NewPLC1 sample H516 07 BOOL Internal varge AddressOk_Bit BOOL Addrss Rat NewPLC1 sample 516 08 BOOL Internal Addrss Control_Data WORD CMND co NewPLC1 sample H521 WORD _ Internal MIND es pigas ghar For interna NewPLC1 sample H527 WORD Internal For int _ Phase WORD Process or NewPLC1 sample H532 WORD Internal Proces Command_Dat
3. Variables Message a e PA co E MepsagSz ejo E STRING Message1 STRING Message2 INT Result Memory Card Functions WRITE_ TEXT Create Text File e Function Result FIND Message1 Message3 2 is stored in the Result variable Writes the specified text sting into the specified file in the Memory Card e Application Write_Text Write_string Directory_name_and_file_name Delimiter Parameter e Arguments and Return Values Data type Write_string STRING Specifies the text string to write to a file Directory_name_and STRING _file_name i Parameter INT UINT WORD 0 Append 1 Create new file Specifies the directory and file name including the root direc tory The file name must be 8 characters or less The file name extension is always TXT For example the following file name creates a file named LINE_A TXT in the root directory LINE_A Empty character Comma L or I Line feed ASCII OA N or n Carriage return line feed ASCII OD OA P or p New page ASCII 0C R or r Carriage return ASCII OD ST or t Tab ASCII 09 191 Function Descriptions Appendix C e Example Variables i l BOOL P_MemCardBusyFlag File Memory Operation Flag AT A343 13 BOOL P_MemCardAskFlag Memory Card Detected Flag AT A343 15 STRING FileName File name 1 INT LogData1 2 3 Log number i
4. Select Array Variable Input the number of elements When the name of an array variable is entered in the algorithm in the func tion block definition square brackets surrounding the index will appear af ter the array name For example if you create a variable named PV with a maximum of 3 ele ments PV O PV 1 and PV 2 could be specified as instruction operands There are three ways to specify indices e Directly with numbers e g PV 1 in the above example for ladder pro gramming or ST language programming e With a variable e g PV a in the above example where a is the name of a variable with a data type of INT for ladder programming or ST language programming e With an equation e g PV a b or PV a 1 in the above example where a and b are the names of variables with a data type of INT for ST language programming only When using structured text a dialog box will not be displayed to register the variable whenever a variable name that has not been registered is input Be sure to always register variables used in standard text programming in the variable table either as you need them or after completing the program Place the cursor in the tab page on which to register the variable right click and select Insert Variable from the pop up menu For details on structured text specifications refer to SECTION 5 Structured Text ST Language Specifications in Part 2 Structured Text ST
5. PON CONTROL 1 0 f 1 EN ENO x f amp 100 The same instance can be PARALI used at multiple locations amp 130 PARA 2 Function block definition Example CONTROL Instance CASCADE A CASCADE P_On CONTROL i Algorithm Algorithm t en ENOL amp 50 Variables Internal and I O _ PARA_1 ariables variables amp 150 PARA_2 P de CONTROL 5 EN ENO _ PARA_1 amp 200 PARA_2 Some precautions are required when using the same memory area For example if the same instance containing a timer instruction is used in more than one program location the same timer number will be used causing coil duplication and the timer will not function properly if both instructions are exe cuted 17 Variables Section 1 3 Registration of Instances 1 3 Variables 1 3 1 Introduction Note 18 Each instance name is registered in the global symbol table as a file name Program Instance sample of function block definition A The instance is registered in the global symbol table with the instance name as the symbol name Name Data type Address value sample FB FunctionBlock1 N A Auto The function block definition name is registered after FB in Instance name square parentheses In a function block the addresses see note are not entered as real I O mem ory addresses they are all entered as variable names Each time an instance
6. V Automatically Transfer Program to Simulator Continuous Step Interval f5 100 ms Cancel Apply Help Allocating the ST Program to a Task The ST program that was inserted in the project must be allocated to a task as an execution unit If a program has not been allocated to a task there will be a check mark over that program s icon in the project workspace Note The following procedure which allocates a program to a task can be per formed after the program has been created but always allocate the programs before transferring the user program to the PLC Use the following procedure to allocate a program to a task 1 2 3 1 Right click the inserted ST program item in the project workspace and se lect Properties from the pop up menu lt j Memory H k Programs B 3 NewProgram1 00 Symbols Section1 amp END E Lit m i JDA ma Sy Open F Function B Cr mpile Partial Transfer gt Cut Copy amp Paste Delete Rename v Allow Docking Hide Float In Main Window 171 Procedures Section 6 1 2 Click the General Tab in the displayed Program Properties Dialog box and select the task from the Task Type List To set a program name input the program name in the Name Text Box in this tab page Program Properties General Protection Comments Name NewProgam2 O Task type Unassigned Unassigned r w Cyclic Task OO Startup Cyclic Task 0
7. ti value Retained _ Comment tmp DINT Internals Outputs Externals ADD_INT_DINT 10 0 ne Body EN ENO me SIGN IN16 tmp D41000 L IN32 tmp OUT32 Internal variable tmp Name Type is not displayed Internal tmp DINT Input EN BOOL Input IN16 INT Input IN32 DINT Output ENO BOOL utput OUT32 DINT Retain Data through Power Interruptions and Start of Operation Internal variables retain the value from the last time that the instance was called In addition the Retain Option can be selected so that an internal vari able will also retains its value when the power is interrupted or operation starts the mode is switched from PROGRAM to RUN or MONITOR mode When the Retain Option is selected the value of the variable is retained when the power is interrupted or operation starts unless the CPU Unit does not have a backup battery If the CPU Unit does not have a good battery the value will be unstable Variables set to Retain Start of operation When the Retain Option is not selected the value of the variable will not be held when the power is interrupted or operation starts Even variables not set to be retained however can be held at the start of operation by turning ON the IOM Hold Bit A50012 and can be held during power interruptions by set ting the PLC Setup as shown in the following table Variables Condition IOM Hold Bit A50012 setting IOM Hold Bit Status at Startup IO
8. MOV 0000 file_name 2 FREAD omitted omitted file_name 0 omitted lt Specify the first element of the array in the instruction operand Handling Control Data in Multiple Words In this example an array contains the number of words and first Source word operand S1 for an FREAD instruction e Variable table Input output variable or internal variable data type DINT array setting with 3 elements variable names read_num O to read_num 9 e Data Settings and Internal Function Block Processing e Input output variables Set the input parameter to the address of the first word in the data ex ample D200 The data is set in D200 to D205 in advance from the main user program FREAD omitted read_num 0 omitted omitted Specify the first element of the array in the instruction operand e Internal variables Use ladder programming within the function block to set data into the array e Ladder Programming MOVL amp 100 read_num 0 No _of_words MOVL amp 0 read_num 1 7st_source_word FREAD omitted read_num 0 omitted Cate Ee enon eee an ne the array la Set data in each array element 60 Function Block Applications Guidelines Section 2 5 Division Using Integer Array Variables Ladder Programming Only Note Handling a Block of Read Data in Multiple Words The allowed amount of read data must be determined in advance and an array must be prepared that can handle the maximum amount of data In th
9. Write the operand data to the array variables Specify the beginning of the array in the SCL instruction For details refer to 2 6 Precautions for Instructions with Operands Specifying the First or Last of Multiple Words Initial Values When an instance is executed the first time initial values can be set for input variables internal variables and output variables For details refer to nitial Value under the preceding descriptions of input variables internal variables and output variables AA Initial Value N FALSE FALSE Contre E Data Type UINT inputs Usage 4 LD A Pe E Initial Value 30 l A etain POPLPLLPPLPELEPEEPLLE 4 Name Internals Input Comment 1 Retaining Data through Power Interruptions and Start of Operation The values of internal variables can be retained through power interruptions and the start of operation When the Retain Option is selected the variable will be allocated to a region of memory that is retained when the power is interrupted and PLC operation starts Enter the logic programming using the registered variables Addresses cannot be directly input into instruction operands within function blocks Addresses that are directly input will be treated as variable names Exception Input directly or indirectly specified addresses for Index Registers IRO to IR15 and Data Registers DRO to DR15 directly into the instruction operand Do not input
10. Consequently after the ST program s online editing changes have been trans ferred in Quick Mode it may be impossible to upload the program later see note if the computer or CX Programmer crashes before the source code can be transferred It may be still be possible to transfer the source code with the following proce dure even if the above problem occurs 177 Procedures Transferring Source Code from a Backup Project 1 2 3 Manually Transferring the ST Source Code 1 2 3 Note Section 6 1 1 Start the CX Programmer 2 The following dialog box will be displayed if a project s ST source code was being transferred in Quick Mode and the transfer failed CX Programmer 7 2 X FeISFCIST Source in the project D program SFC Average Value Measurement_NewPLCi FBK ij may not be transferred correctly 60 online and check the status of the PLC n 3 Click the OK Button the CX Programmer will start the backup project from the previous Quick Mode transfer 4 Connect online with the PLC that was the destination of the Quick Mode transfer The following dialog box will be displayed CX Programmer T Z2 7 x Check if the backed up FBISFCIST Source can be transferred E IF No is selected the program cannot be transferred From the PLO correctly after going online a 5 Click the Yes Button If the PLC is not in RUN mode the program will be compared between the project and PLC and th
11. e Two hexadecimal digits following a dollar sign are interpreted as hexa decimal values a l r ition as The hexadecimal number 02 start code The hexadecimal number 03 end code 139 Inputting ST Programs Section 5 3 e Certain alphabet characters following a dollar sign are interpreted as listed in the following table Notation Description The dollar sign ASCII 24 A single quotation mark ASCII 27 Tab ASCII 09 e When a text string is being stored from the ladder program in an ST func tion block s STRING variable append a NULL character 00 to the end of the text string Example Passing string data to the function block STRING variable Strx Ladder program that stores 123456 in STRING variable Strx Attach a NULL character 00 at the end STRING data is stored to the function block by the ladder program above STRING STRING StrX StrX D100 D100 5 3 2 CX Programmer s ST Input Screen Display Text Display Color The CX Programmer automatically displays text in the following colors when it is input or pasted in the ST Input Screen e Text keywords reserved words Blue e Comments Green e Errors Red e Other Black Changing Fonts To change font sizes or display colors select Tools Options click the Appearance Tab and then click the ST Font Button The font name font size default is 8 point and color can be changed 140 ST Language Con
12. Stores the real I O memory address for first ClO Area word n Calculate offset address from unit number Ok_Bit Range Check 64 Signed Binary Multiply Muttiplicand word Multiplier word Result word Move To Register U _relay 0 Source wordbit Destination index register Double Signed Binary Add Without Carry First augend word First addend word First result word When Index Registers are used within this function block processing to save the Index Register value is performed when the func tion starts or before the Index Register is used to enable the value to be returned to the original Index Register value after the function block is completed or after the Index Register is used Example Save the contents of Index Regis ter IRO by storing it in Save AR O internal variable data type DINT 1 array element Example The real I O memory address for the first word of CIO 1500 unit number X 25 allocated in the CPU Bus Unit allocation area based on the CPU Bus Unit s unit number amp 0 to amp 15 passed from the func tion block is stored in IRO Procedure Assumes that unit numbers amp 0 to amp 15 have already been input from outside the func tion block in UnitNo input variables INT data type 1 Multiple UnitNo by amp 25 and store in Off set internal variable DINT data type 2 Store the real I O memory address for SCPU_Relay internal variable WORD data ty
13. e Input variables input output variables 64 max EN and ENO e Output variables input output variables 64 max Allocation of addresses Automatic allocation The allocation range can be used by variables set by the user Actual address specification Supported Array specifications Supported one dimensional arrays only and only for internal variables and input output variables Function blocks can be created in ladder programming language or structured text ST see note CJ2H Units e CJ2H CPU6L EIP 2 048 max per CPU Unit CS1 H CJ1 H CPU Units e Suffix CPU44H 45H 64H 65H 66H 67H 64H R 65H R 66H R 67H R 2 048 max per CPU Unit e Suffix CPU42H 43H 63H 256 max per CPU Unit CJ1M CPU Units e CJ1M CPU11 12 13 21 22 23 256 max per CPU Unit Number of instances Creating instances CP1H CPU Units e All models 256 max per CPU Unit CPiL CPU Units e CP1L M L 256 max per CPU Unit NSJ Controllers e SJLI LILILILI G5D 2 048 max per Controller NSJL_I LILILILI M3D 256 max per Controller FQM1 Flexible Motion Controllers e FQM1 CM002 MMA22 MMP22 256 max per Controller Instance 15 000 characters max names Storing Project files The project file cxp cxt Includes function block definitions and instances function The file memory program file obj includes function block definitions and files blocks as instances Function Each function block definition can be stored as a
14. 5 7 1 Restrictions E Nesting e There is no restriction on the number of nests that can be used in IF CASE FOR WHILE or REPEAT statements E Data Type Restrictions e Integers can only be allocated to variables with data types WORD DWORD INT DINT UINT UDINT or ULINT For example if A is an INT data type A 1 it possible If the value is not an integer data type a syn tax error will occur For example if A is an INT data type a syntax error will occur for A 2 5 lf a real number floating point decimal data can only be allocated to vari ables with data types REAL and UREAL For example if A is a REAL data type A 1 5 is possible If the value is not an real data type a syntax error will occur For example if A is a REAL data type a syntax error will occur for A 2 Use A 2 0 Bits TRUE FALSE can only be allocated to variables with the BOOL data type For example if A is a BOOL data type A FALSE is possible lf a BOOL data type is not used a syntax error will occur For example if A is an INT data type a syntax error will occur for A FALSE Data types must all be consistent within the structured text For example if A B and C are INT data types A B C is possible If however A and B are INT data types but C is a REAL data type or LINT data type a syn tax error will occur for A B C e In the structured text the following cannot be used P_CY P_EQ P_ER P_N P_GE P_GT P_LE P_LT P_NE
15. Addresses in the following data areas cannot be used as parameters for input variables output variables and input output variables e Index Registers neither indirect nor direct addressing is supported and Data Registers e Indirect addressing of DM or EM Area addresses Neither binary mode nor BCD mode indirect addressing is supported When a function block is called from an interlocked program section the con tents of the function block definition will not be executed The interlocked func tion block will behave just like an interlocked subroutine P_Off FB_BODY bo hro Interlocked Interlock will not affect instructions in the function block definition An instance will not be executed while its EN input variable is OFF so the fol lowing precautions are essential when using a Differentiation Instruction in a function block definition Differentiation Instructions include DIFU DIFD and any instruction with an or prefix e As long as the instance s EN input variable is OFF the execution condition will retain its previous status the last status when the EN input variable was ON and the Differentiation Instruction will not operate 51 Programming Restrictions Section 2 4 Timer Instructions in Function Block Definitions 52 e When the instance s EN input variable goes ON the present execution condition status will not be compared to the last cycle s status The present execution condi
16. Controllers Programming Manual W451 W462 CP1L MLUILILILI L SYSMAC CP Series Provides the following information on the CP series CP1L PLCs CP1L LUIILILI L CP1L CPU Unit Oper e Ovyerview Features ation Manual l e System configuration e Mounting and wiring e O memory allocation e Troubleshooting Use this manual together with the CP1H Programmable Control lers Programming Manual W451 W451 CP1H X_ILILI SYSMAC CP Series _ Provides the following information on the CP series CP1H and CP1H XALIL CP1H CP1L CPU CP1L PLCs CP1H YUHU Unit Programming Programming instructions gee Manya e Programming methods CP1L LOO00 0 J g e Tasks Use this manual together with the CP1H CP1L Programmable Controllers Operation Manual W450 Installation from CX One For details on procedures for installing the CX Programmer from CX One FA Integrated Tool Package refer to the CX One Ver 3 0 Setup Manual provided with CX One cano Modi Manual name W463 CXONE ALLILIC V4 CX One Setup Manual Installation and overview of CX One FA ALLILID V4 Integrated Tool Package XIV Overview of Contents Precautions provides general precautions for using the CX Programmer Part 1 Part 1 contains the following sections Section 1 introduces the function block functionality of the CX Programmer and explains the features that are not contained in the non
17. Copying User Program Circuits and Pasting in Ladder Programming of Function Block Definitions Source Instruction Operand Address Only Note 90 A single circuit or multiple circuits in the user program can be copied and pasted in the ladder programming of function block definitions This operation however is subject to the following restrictions Addresses are not registered in the function block definition variable tables After pasting the addresses will be displayed in the operand in red Double click on the instruction and input the variable name into the operand Index Registers IR and Data Registers DR however do not require modifi cation after pasting and function in the operand as is Procedures Source Instruction Operand Address and I O Comment Note Source Instruction Operand Symbol Section 3 2 Automatically generate symbol name Option Selected in Symbols Tab under Options in Tools Menu The user program symbol names in the global symbol table only will be gen erated automatically as AutoGen_ Address if the option is deselected the symbol names will be removed Example 1 For address 100 01 the symbol name will be displayed as AutoGen_100_01 Example 2 For address DO the symbol name will be displayed as AutoGen_D0 If circuits in the user program are copied and pasted into the function block definition program as is the symbols will be registered automatically in the function b
18. STRING FiledStrl1 2 3 Log number text string l STRING CsvLineStr CSV format log 1 line text string FileName LOGFILE LogData1 12 LogData2 345 LogData3 6789 Contents of output file Output data to text file if Memory Card write conditions are met IF P_MemCardAckFlag AND NOT P_MemCardBusyFlag THEN LOGFILE TXT Convert from number to text string FieldStr1 INT_TO_STRING LogData1 12 345 6789 FieldStr2 INT_TO_STRING LogData2 FieldStr3 INT_TO_STRING LogData3 Create 1 row CSV format numeric value text string CsvLineStr FieldStr1 FieldStr2 FieldStr3 Output one line of numeric data to file WRITE_TEXT CsvLineStr FileName n O END_IF Related Auxiliary Address Description Area Flag File Memory Opera ON when any of the following conditions exists tion Flag e CMND instruction sending a FINS command to the local CPU Unit e File Memory Instruction being executed e Program replacement using the control bit in the Auxiliary Area e Easy backup operation Memory Card A343 15 ON when a Memory Card has been detected Detected Flag For further information and precautions on related Auxiliary Area flags refer to the section on the FWRIT File Memory Instruction in the CS CJ series Instruction Reference Manual Communications Functions TXD_CPU Send String via CPU Unit RS 232C Port e Function Sends a
19. Section Name Section1 i IO Table and Unit Setup k eeetetessetetteeeae d Settings i G Memory d YP 0 1s lr zzz i a aOR GP SFC JF Fun amp Paste ve Allow Docking Hide Float In Main Window Properties An ST program will be inserted in the project workspace and the ST Editor will be displayed on the right side of the workspace Note 1 Ladder and SFC programs can also be created To create these pro grams right click the Programs Item in the project workspace to display the pop up menu and select Insert Program Ladder or Insert Pro gram SFC For details on ladder programming refer to the CX Programmer Opera tion Manual W446 For details on SFC programming refer to the CX Programmer Operation Manual SFC W469 170 Procedures Section 6 1 6 1 3 2 When a new project has been created ST programs can be set as the PLC s initial program type Select Tools Options and click the PLCs Tab to set this option ll x Ladder Information General SFC Diagrams PLCs Symbols Appearance V Confirm all operations affecting the PLC Prohibit the online operations until the PC and PLC data matches Check forced status after online connection Default PLC details PLC Type EJIM Use Current PLC CPU cPu11 X MV Use comment instructions MV Use section marker instructions Default Program Type in new PLC fst Select the ST Option Work Online Simulator
20. Source_ STRING STRING _ Deletes characters a DELETE b c d lt Number_ot_characters gt string from a text string number of characters specified lt Position gt Number_of_ INT by variable c deleted from text characters UINT string b starting from position Position INT specified by variable d and Peston one pa string stored in variable a 144 ST Language Configuration Section 5 4 Argument data type Return Description value data type REPLACE lt Source_string Source_ STRING STRING Replaces charac a REPLACE b c d e gt See string ters in a text string number of characters specified lt Number_ot_characters gt Replace_ STRING by variable din source string b lt Position gt string replaced with text string c start Number of INT ing from position specified by UINT variable e and resulting string stored in variable a Position INT UINT FIND lt Source_string gt STRING INT Finds characters a FIND b c lt Find_string gt string within a text string first occurrence of text string c Find_string STRING found in text string b and posi tion stored in variable a 0 stored if text string cis not found Data Type Conversion The following data type conversion functions can be used in structured text Functions Syntax Source_data_type_TO_New_data_type Variable_name Example REAL_TO_INT C In this example the data type for variable C will be changed from REAL
21. UNTIL lt condition gt END REPEAT E Processing Flow Chart Expression Iteration False E Usage Use the REPEAT statement to repeat processing for as long as a condition is met after specified processing when the number of iterations is undetermined beforehand depends on whether the condition is met This statement can be used to determine whether to repeat processing according to the results of specified processing execution post test loop m Description The expression will execute the first time without a condition Thereafter the condition equation will be evaluated If the condition is false the expression will be executed again If the condition is true processing will end without exe cuting the expression E Precautions e REPEAT must be used together with END_REPEAT e Even if the condition equation is true before the expression has been exe cuted the expression will be executed Statement Descriptions Section 5 5 e Statements that can be used in the expression are assignment state ments IF CASE FOR WHILE or REPEAT e Multiple statements can be executed in the expression Be sure to use a semicolon delimiter between multiple statements in an expression e The condition can also be specified as a boolean variable BOOL data type only rather than an equation E Examples Example 1 Numeric values from 1 through 10 are incremented and the total is substituted for the variable TOTAL 13
22. UnitNo X amp 25 6 is ON Returning the Index Register to the Prior Value The Index Register returns to the original Restore data to IRO from temporary backup buffer n value after this function block is completed or after the Index Register has been used First source word Example The value for variable Save R 0 that was saved is stored in Index Register IRO and the value is returned to the con tents from when this function started or prior to using the Index Register First destination word 2 6 Precautions for Instructions with Operands Specifying the First or Last of Multiple Words Note 1 2 3 When using ladder programming to create function blocks with instruction operands specifying the first or last of a range of words the following precau tions apply when specifying variables for the operand When the operand specifies the first or last word of multiple words the instruction operates according to the internally allocated address for AT set ting or external variable setting Therefore the variable data type and num ber of array elements are unrelated to the operation of the instruction Either specify a variable with an AT setting or an array variable with a size that matches the data size to be processed by the instruction For details on whether an AT setting or external variable setting or an array setting for a number of elements is required to specify the first address of a range of word
23. X X is an UINT type variable Y is an INT type vari data type before a variable with a data able type that does not support negative values UINT UDINT ULINT There must be one line of There is no line of valid code valid code excluding com excluding comments ments Too many variables specified Too many parameter settings Y SIN X1 X2 for Function are specified for the function Undefined identifier s A variable that is not defined in the variable table has been used Unexpected syntax s A keyword reserved word or FOR 1 TO 100 DO BY 1 The DO position is illegal variable has been used ille X X4 1 gally END_FOR Usage mismatch in Function The function parameter has Y SIN X1 EN gt BOOL1 The input parameter EN has variable been used illegally been used as an output parameter Value out of range A value outside the range for the variable data type has been substituted in the vari able X 32768 X is an INT type variable Variable s is not a Function A variable that cannot be Y SIN Z X X and Y are REAL type variables and Z parameter specified in the function is not a SIN function parameter parameter has been specified in the parameter 185 Structured Text Errors Warning Messages Appendix B Warning message Cause of warning S S Sapl Keyword s is redundant Conversion from s to s possible loss of data 186 The
24. do not support function blocks Refer to the descriptions of individual instruc tion in the CS CJ Series Instruction Reference for details 75 Number of Function Block Program Steps and Instance Execution Time Section 2 9 Timer Operation for Timer Numbers T0000 to T2047 Refresh Cescription When instruction is The PV is refreshed each time the instruction is executed executed If the PV is 0 the Completion Flag is turned ON If it is not 0 the Completion Flag is turned OFF When execution of all All PV are refreshed once each cycle tasks is completed Every 80 ms If the cycle time exceeds 80 ms all PV are refreshed once every 80 ms Timer Operation for Timer Numbers T2048 to T4095 Refresh Description When instruction is The PV is refreshed each time the instruction is executed executed If the PV is 0 the Completion Flag is turned ON If it is not 0 the Completion Flag is turned OFF When execution of all PV are not updated tasks is completed Every 80 ms PV are not updated even if the cycle time exceeds 80 ms Select the Apply the same spec as TO 2047 to T2048 4095 Option to ensure consistent operation when using the timer numbers allocated by default to function block variables T3072 to T4095 2 9 Number of Function Block Program Steps and Instance Execution Time 2 9 1 Number of Function Block Program Steps This section applies only to CP series CPU Units with unit version Ver 1 0
25. function blocks 181 System defined external variables supported in function blocks Appendix A 182 Appendix B Structured Text Errors Error Messages s Input variables cannot be A value was substituted for an assigned a value input variable s operator not supported by A numerical value or variable A B 1 A and B are WORD type variables s data type for a data type that is not sup ported by the operator was used s variable had a read only A value was substituted for a memory AT Address and can variable allocated to a read not be assigned a value only memory address read only Auxiliary Area address or Condition Flag Array index out of range An array index larger than the Array 100 10 Array is an array variable with an array array size was specified size of 100 Conversion cannot convert A numeric equation in which Y ABS X X is an INT type variable Y is a UINT type from s to s the data type of the operation variable result does not match the vari able at the substitution desti nation and a variable that is different from the data type was substituted Division by Zero The numeric expression con tains division by O End of comment not found The comment does not have a comment closing parenthesis and aster isk corresponding to the opening parenthesis and asterisk of the comment Invalid Literal Format s The numeric format is ille
26. input output variables 35 inputs 19 instance areas 21 42 setting 21 102 instances creating 23 97 multiple 46 number of 14 outline 14 registering in global symbol table 18 specifications 42 internal variables 35 internals 19 L ladder programming function block definition 84 restrictions in function blocks 51 201 Index M V menus 8 variable names 19 main 8 variables popup 10 address allocations 21 monitoring function blocks 113 checking address allocations 104 creating as needed 88 definitions 31 O introduction 18 properties 19 37 online editing er ee PERY registering in advance 85 function block definitions 121 ne restrictions 51 restrictions 54 i setting allocation areas 21 output variables 33 usage 19 32 outputs 19 P parameters outline 15 precautions XXi applications xxiii general xxii safety xxii Programming Consoles 54 projects creating 82 S safety precautions xxii specifications CX Programmer Ver 5 0 5 function block operation 49 instances 42 structured text function block definition 84 restrictions 53 symbol name automatically generating 91 T timer instructions operation 75 restrictions 52 202 Revision History A manual revision code appears as a suffix to the catalog number on the front cover of the manual Cat No W447 E1 09 Revision code The following table outlines the changes m
27. is created the actual addresses used by the variable are allocated automati cally in the specified I O memory areas by the CX Programmer Conse quently it isn t necessary for the user to know the real I O memory addresses used in the function block just as it isn t necessary to know the actual mem ory allocations in a computer A function block differs from a subroutine in this respect i e the function block uses variables and the addresses are like black boxes Example Program Function block definition A Sa esi ee tenn eat cha gep eae len Instance of function block definition A _ Standard program section with variable names a b c etc Insert in pe a a D progran Aput 0 00 b Output 2 00 Input 3 00 Specify inputs nd outputs MOV at the same time Status of 0 00 1 or 0 is passed to a Status of b 1 or 0 is Table indicating usage and passed to 2 00 roperties of variables a b c etc oe 0 00 4 a b 2 00 4 Usage Inputs Status of 3 00 1 or 0 is Properties passed to c Name Type AT Initial Value Retained 3 00 c a BOOL l c BOOL Usage Outputs The system automatically allocates the Properties addresses used by variables a b and c For example when W100 to W120 is set as the system s non retained memory area bit addresses such as a W10000 b W10001 and c W10002 will be allocated b BOOL DO ee E S C
28. 1 79769313486232 x 10 8 to 2 22507385850720 x 107908 0 2 22507385850720 x 107908 1 79769313486232 x 10908 0000 to FFFF or amp 0 to 65 535 00000000 to FFFFFFFF or amp 0 to 4 294 967 295 0000000000000000 to FFFFFFFFFFFFFFFF or amp 0 to 18 446 744 073 709 551 615 LWORD 64 bit data 64 bits followed by hexadecimal number 16 digits max amp or followed by decimal number 2 The size of function block input variables and output variables must match the size of program symbols global and local as shown in the fol lowing table Function block variable data Program symbol global local type data type To BOOL BOOL INT UINT WORD INT UINT UINT BCD WORD 32 bits DINT UDINT REAL DWORD DINT UDINT UDINT BCD REAL DWORD 64 bits LINT ULINT LREAL LWORD LINT ULINT ULINT BCD LREAL LWORD More than 1 CHANNEL NUMBER see note bit Note The program symbol NUMBER can be set only in the input param eters The value that is input must be within the size range for the function block variable data type 48 Instance Specifications Section 2 3 2 3 3 Operating Specifications Calling Instances The user can call an instance from any location The instance will be executed when the input to EN is ON Instance In this case the input to EN is bit 0 0 at the left of the diagram e When the input to EN is ON the instance is executed and the execution results are reflected in bit 1 0 and
29. 1024 Force setting resetting is enabled when the following EM banks are specified CJ2H CPU67 EIP CS CJ series CPU Units Ver 3 0 or Later and NSJ Controllers area start address of size FQM1 Flexible Motion Controllers FB Instance Default value Applicable memory Area Start address End address Size argas 5000 5999 1000 CIO WR DM Counters c20 C255 55 Function Block Applications Guidelines Section 2 5 CP series CPU Units Function block instance Initial value of Initial value Allowed data areas area start address of size Non retained H512 896 CIO WR HR DM See note Retained m HR DM See note Note DM area of CP1L L PILL D0000 to D9990 D10000 to D31999 Not Provided D32000 to D32767 If there is an instruction in the user program that accesses an address in an FB instance area the CX Programmer will output an error in the following cases e When a program check is performed by the user by selecting Program Compile from the Program Menu or Compile All Programs from the PLC Menu e When attempting to write the program through online editing writing is not possible 2 5 Function Block Applications Guidelines This section provides guidelines for using function blocks with the CX Pro grammer 2 5 1 Deciding on Variable Data Types Integer Data Types Use the following data types when handling single numbers in 1 2 or 4 word 1 2 or 4 word Data units e IN
30. 59 Function Block Applications Guidelines Section 2 5 Note Make sure that the data size to be processed by the instruction is the same as the number of elements For details on the data sizes processed by each instruction refer to 2 7 Instruction Support and Operand Restrictions 2 Set the data in each of the array elements using the MOV instruction in the function block definition 3 Specify the first or last element of the array variable for the operand This enables specification of the first or last address in a range of words Examples are provided below Handling a Single String of Data in Multiple Words In this example an array contains the directory and filename operand S2 for an FREAD instruction e Variable Table Input output variable or internal variable data tyoe WORD array setting with 10 elements variable names filename 0 to filename 9 e Data Settings and Internal Function Block Processing e Input output variables Set the input parameter to the address of the first word in the data ex ample D100 The data 5C31 3233 0000 etc is set in D100 to D109 in advance from the main user program FREAD omitted omitted read_num 0 omittea Specify the first element of the array in the instruction operand e Internal variables Use ladder programming within the function block to set data into the array MOV 5C31 file_name 0 MOV 3233 file_name 1 Set data in each array element
31. 6 steps DWORD or REAL input variable or output variable 4 word LINT ULINT 12 steps LWORD or LREAL input variable or output variable Input output variables 18 steps P Number of instruc The total number of instruction steps Same as standard tion steps in func user program 27 steps tion block definition Example Input variables with a 1 word data type INT 5 Output variables with a 1 word data type INT 5 Function block definition section 100 steps Number of steps for 1 instance 57 5 5 x 6 steps 100 steps 27 steps 244 steps When the program is written in ST language the actual number of steps can not be calculated The number of instruction steps in each function block defi nition can be found in the function block definition s properties 2 9 2 Function Block Instance Execution Time This section applies only to CP series CPU Units with unit version Ver 1 0 or later and CS CJ series CPU Units with unit version Ver 3 0 or later NSJ Con trollers and FQM1 Flexible Motion Controllers Use the following equation to calculate the effect of instance execution on the cycle time when function block definitions have been created and the instances copied into the CPU Unit s user program Effect of Instance Execution on Cycle Time Startup time A I O parameter transfer processing time B Execution time of instructions in function block definition C 77 Number of Functi
32. A B 2 2 5 4 5 Standard Functions Function type Numerical Functions Absolute values trigonometric functions etc Arithmetic Functions Exponential EXPT Data Type Conversion Functions Source_data_type_TO_New_data_type Variable_name Number String Conversion Functions Source_data_type_TO_STRING Variable_name STRING_TO_New_data_type Variable_name Numerical Functions Argument data type Return value Description data type ABS argument INT DINT LINT INT DINT LINT Absolute value argu a ABS b UINT UDINT ULINT UINT UDINT absolute value of variable REAL LREAL mae REAL b stored in variable a SQRT argument REAL LREAL REAL LREAL Square root a SQRT b argument square root of variable b stored in variable a LN argument REAL LREAL REAL LREAL Natural logarithm LOG a LN b argument natural logarithm of vari able b stored in variable a LOG argument REAL LREAL REAL LREAL Common logarithm a LOG b LOG argument common logarithm of vari able b stored in variable a gument natural exponential of vari able b stored in variable a SIN argument REAL LREAL REAL LREAL Sine SIN argument a SIN b sine of variable b stored in variable a COS argument REAL LREAL REAL LREAL Cosine COS argument a COS b cosine of variable b stored in variable a TAN argument REAL LREAL REAL LREAL Tangent TAN argument a TAN b tangent of vari
33. EA 51 2 5 Function Block Applications Guidelines 0 0 0 0 0 ccc cee ees 56 2 6 Precautions for Instructions with Operands Specifying the First or Last of Multiple Words 65 2 7 Instruction Support and Operand Restrictions 0 0 0 0 0 eee 68 2 8 CPU Unit Function Block Specifications 0 0 cee eee eens 70 2 9 Number of Function Block Program Steps and Instance Execution Time 76 SECTION 3 Creating Function BlocKs ccceecccssccssee 79 Sel Procedural FloW sirenaren eua renea CERES eee ee eee sake het aus 80 Oo JPIOCECUICS s o2 cau behane se a nE Saher e etre ete pe d 82 1X TABLE OF CONTENTS Part 2 Structured Text ST SECTION 4 Introduction to Structured Text 22222 I31 Al SFL Ua e 2a cats ene chon ew eee et Adee Seed Lab SS LEE ENORTER SS Bo 132 4 2 X Procramimer Specifications 4 5 6 h lt lt aeue Sew AS Keo e We hs HEA CA See wd eS SSS 133 SECTION 5 Structured Text ST Language Specifications 135 5 1 Structured Text Language Specifications 0 0 0 0c cee eens 136 52 Data Types Used ims Prosas erst 2443 5o e804 eR eu edss coe deand ewe eae am 137 S29 INputhine STPS aNs eiri cecil een eats eee honey bo korg a oe ee et 138 5 4 ST Language Configuration 22 3 ea ease keene Sete ehiu ee heels ea iw 141 5 JOtalement DescripuOns 2a 440 6 ra aes A EA OE EEE EA 148 5 6 ST language Program Example 0 0 0 cc eee eens 166 Sei Reien 1 62 ess
34. H800 to H819 In this operation if another internally allocated variable e g c is allocated words in H810 to H819 the words will be overwritten causing unexpected operation to occur To transfer 20 words make sure that the number of ele ments is specified as 20 elements for both array variable a and b 67 Instruction Support and Operand Restrictions Section 2 7 XFER amp 20 a0 b 0 Using a WORD data type with 10 elements for both variables a and b To transfer 20 words be sure to specify 20 elements for both array variables a and b Internally allocated address Example H700 Array variable a 10 words 10 words Example H710 Example H719 2 Instruction Support Restrictions on Operands 68 Internally allocated address Array variable a 10 words 10 words 20 words Example H810 20 words will be transferred regard less of the size of ar ray variables a and b Example H819 The variables allocated in this area H810 to H819 in this example are overwritten The data is variable length data so the CX Programmer will not output a compile error Other Operand Specifying Size Variable Even if the number of array elements does not match the size i e size to be processed by the instruction specified in another operand variable the CX Programmer will not output an error when compiling The instruction will be executed according to the size specified by the operan
35. Inputs Outputs In Out or Externals are Internals Internal variables include variables with internally allocated addresses and variables requiring addresses with AT settings e g I O alloca tion addresses addresses specially allocated for Special I O Units Variables requiring array settings include input output variables and internal variables For details on conditions requiring AT settings or array settings refer to 2 5 3 AT Settings for Internal Variables and 2 5 4 Array Settings for Input Output Variables and Internal Variables 2 5 3 AT Settings for Internal Variables Always specify AT settings for internal variables under the following condi tions e When addresses allocated to Basic I O Units Special I O Units or CPU Bus Units are used and these addresses are registered to global symbols that cannot be specified as external variables e g data set for global symbols is unstable Note The method for specifying Index Registers for Special I O Unit allo cation addresses requires AT settings to be specified for the first address of the allocation area For details refer to 2 5 5 Specify ing Addresses Allocated to Special I O Units e When Auxiliary Area bits that are not pre registered to external variables are used and these bits are registered to global symbols that are not specified as external variables e When setting the first destination word at the remote node for SEND 090 and the first source word at the
36. L Internal tim_a TIMER Internal tim_b TIMER i TIMX tim_b OFF_TIME Internal variables Variable Type Usage Variable type Externals See note 1 Return values from Variables used to Variables used Global symbols the instance pass data to and only within registered as vari from instances instance ables beforehand using addresses with the CX Pro grammer or user defined global symbols The value of the variable registered externally Not displayed Definition Operands to the instance The value is passed on to the next execution Not displayed The value of the external parameter The value is passed on to the next execution Displayed on the right side of the instance The value of the input parameter will be given Displayed on the left side of the instance Status of value at next execu tion Display Number allowed Displayed on the left and right sides of the instance 64 max per func Unlimited tion block exclud ing EN 64 max per func tion block exclud ing ENO 16 max per func tion block AT seting Supported Ne Aray seting No NN Supported Supporied Retain setting Supported Supported No Supported See note 2 Variables cre EN Enable ENO Enable Out None ated by default Receives an input put condition Outputs the func 1 For details on Externals refer to Appendix A System defined external variab
37. Programmer Ver 9 Manuals SYSMAC WS02 CXPC1 V9 W447 Explains how to use the CX Programmer software s function CX Programmer Operation Manual this block and structured text functions For explanations of other Function Blocks Structured Text manual shared CX Programmer functions refer to the CX Program mer Operation Manual W446 SYSMAC WS02 CXPC1 V9 W446 Provides information on how to use the CX Programmer for CX Programmer Operation Manual all functionality except for function blocks SYSMAC WS02 CXPC1 V9 Explains how to use the SFC programming functions For CX Programmer Operation Manual SFC explanations of other shared CX Programmer functions refer to the CX Programmer Operation Manual W446 CX Net Operation Manual W362 Information on setting up networks such as setting data links routing tables and unit settings SYSMAC CXONE ALL IL IC V4 Describes the operating procedures for the CX Integrator SYSMAC CXONE ALLJLID V4 CX Integrator Operation Manual X CS1 H CJ1 H and CJ1M CPU Unit Manuals a C SYSMAC CJ Series CJ2H CPU6LI EIP CU2H CPU6L Programmable Controllers Hardware User s Manual SYSMAC CJ Series CJ2H CPU6LI EIP CU2H CPU6L Programmable Controllers Software User s Manual SYSMAC CS CJ Series CS1G H CPULILJ EV1 CS1G H CPULILJH CS1D CPULILIH CS1D CPULILIS CJ2H CPU6LI EIP CU2H CPU6L CJ1H CPULILJH R CJ1G CPULILJ CJU1G H CPULILJH CJ1G CPULILIP CU1M CPULIL SY
38. Right click to display the pop up menu and select Insert Symbol from the pop up menu It is also possible to select Insert Symbol 3 The New Symbol Dialog Box will be displayed Set the following items and click the OK Button 172 Procedures Section 6 1 e Name Input the variable name e Data type Select the data type e Address or Value Input the address Input the name The default is BOOL Change the data type if required Name Data type Address or value L1 Input the address Comment a F Link the definition to th Server file Advanced Settinas ee Cancel 4 The variables set in the symbol table will be registered Note When variables are being registered without specifying addresses the CX Programmer can be set to allocate addresses automatically For details on Automatic Allocation refer to the CX Programmer Operation Manual W446 2 Creating the ST Program 1 2 3 1 The ST language can be input directly in the ST Editor Window or the ST data can be created in a text editor and then pasted in the ST Editor Win dow by selecting Edit Paste Z Average Yalue Measurement CX Programmer NewPLC1 Ayverage_ alue Calculation aigi x File Edit Yiew Insert PLC Program Simulation Tools Window Help l x ob Gd A 2 amp OB 2S wt k A FR le oo oe Jo K QA Ee EAL P akmu O GHEE EE i 2 2 a c BE eRe NewProject fla
39. ST program within an instance Step Run operation and return to one level higher in the program the program or instance that was the source of the call 1 2 3 1 During Step Run operation move the cursor to any stopping point in the instance 2 Click the Step Out Icon or select Tools Simulation Mode Step Out 119 Procedures Section 3 2 120 Example Returning from an ST Program to the Calling Program or Instance Stopped here Moves to here 0 0000000 D4 0 0000000 IF Reset TRUE THEN PrevCycleLS FALSE ENDIF VVYorkMove RightDirinput LeftDirinput LSright LSleft ActuatorRightOn ActuatorLe P_On 66 i 00L IF PrevCycleLS FALSE 0 nd LSright TRUE THEN Click the Step Out Icon to marye Tea naan _return to the calling program woo E000 a OOK 400 PrevCycleLS LSright PrevCycleLS 0 LSrigl 0 On 0 v0 01 BOOL BOOL 4 01 LeftDirinput ActuatorLeftO n 3 00 BOOL CLINT D10 LSright LS_ONnumber 3 01 BOOL LSleft 010 BOOL Reset Note The Step Out command can be executed only in a ladder ST program within an instance m Display when Operation is Paused by the Simulation Function The color of the cursor or arrow in an ST program indicates whether an operation has been paused in the Simulation Function Window as well as which operation has been paused Debug Color default Program execution operation status Step Run or i Simulator paused Paused b
40. Section 3 2 Selecting a Transfer Mode Note As a rule use Normal Mode to transfer function block definition changes If too much time is required increase the baud rate as much as possible before the transfer If too much time is still required and debugging efficiency is hin dered by continuous online editing use Quick Mode as an exception but be sure you understand the restrictions given in the following note Mode Restric tions in Quick Mode Guidelines for transfer times are given below for eight function block defini tions with a source code totaling 8 Kbytes for all 8 definitions and all instances Normal Mode Quick Mode At 115 2 kbps 5s 1s At 19 2 kbps 10s 2s Restrictions in Quick Mode A program containing function blocks cannot be uploaded correctly to the CX Programmer unless the source code for all function block definitions has been transferred to the CPU Unit Whenever using Quick Mode to transfer changes to function block definitions always select Program Transfer FB Source later to transfer the source code as well Even if the source code is not trans ferred it will be automatically transferred when you go offline unless the com puter or CX Programmer crashes before the source code can be transferred In that happens it may be impossible to upload the program See note Note It may be still be possible to transfer the source code even if the above problem occurs a The following dialog box will be
41. Select Function Block Library File Dialog Box will be dis played 2 Select Function Block Library File 2 x Look in Sy CLK ce Ee a _CLK_CheckNode32 10 cxf a _CLK_CheckNode64 10 cxf P _CLK_Link_RunDatalink 10 cxf a _CLK_Link_SetAutoMode1 10 cxf a _CLK_Link_SetAutoMode2 10 cxf a _CLK_Link_SetAutoMode3 10 cxf 8 _CLK_Link_SetAutoMode4 10 cxf a _CLK_Link_SetInitialParaOpt 10 cxf 8 _CLK_Link_SetInitialParaWire 10 cxf a _CLK_Link_SetManualMode 10 cxf a _CLK_Link_StopDatalink 10 cxF File name CLK_Link_RunDatalink 10 cxf Files of type Function Block Library Files cxf Cancel Note To specify the default folder file location in the Function Block Li brary File Dialog Box select Tools Options click the General Tab and the select the default file in the OMRON FB library storage location field Specify the folder in which the OMRON FB Library file is located select the library file and click the Open Button The library file will be inserted as a function block definition after the TF 83 Procedures Section 3 2 Function Block Definitions Creating Function Block Definitions Ladder Program Structured Text Using OMRON FB Library Files 84 One of the following windows will be displayed when the newly created Func tion Block 1 icon is double clicked or if it is right clicked and Open is selected from the pop up menu A variable table for the variables
42. Send Change Transfers changes made during online editing of a function block Cancel Cancels changes made to a function block being edited online Transfer FB Source Transfers only the function block source Release FB Online Forcefully releases the access rights for function block online editing held by Edit Access Rights another user 10 Function Blocks Section 1 2 Pop up Menu for Function Block Variable Tables Popupmenu SCSCSC SCSCSCSCSumction OOOO O OOOO O Inserts the variable above the current cursor position Below Inserts the variable below the current cursor position Copy Copies te variate Find Searches for the variable Variable names variable comments or all text strings can be searched Deletes the variable Changes only the name of the variable Pop up Menu for Instances _Popupmenu SSCS nation SOS Granges the instance name Update Invocation When a function block definition s input variables output variables or input output vari ables have been changed after the instance was created an error will be indicated by displaying the instance s left bus bar in red This command updates the instance with the new information and clears the error Monitor FB Ladder Instance When monitoring the program online monitors I O bit and word status I O bit monitor of the ladder diagram in the instance Supported by CX Programmer Ver 6 0 and later only Monitor FB Instance When monitoring the
43. TOTAL 0 REPEAT TOTAL TOTAL A A AFI UNTIL A gt 10 END REPEAT EXIT Statement E Summary This statement is used within iteration statements FOR WHILE REPEAT only to force an iteration statement to end This statement can also be used within an IF statement to force an iteration statement to end when a specified condition is met E Reserved Words EXIT E Statement Syntax Example Using within IF Statement FOR WHILE REPEAT expression IF lt condition gt THEN EXIT END IF END FOR WHILE REPEAT E Usage Use the EXIT statement to force iteration processing to end before the end condition is met E Description Example Using within IF Statement When the condition equation is true the iteration statement FOR WHILE REPEAT is forced to end and any statements after EXIT will not be exe cuted Note 1 The condition can also be specified as a boolean variable BOOL data type only rather than an equation 2 Even if the condition equation is true before the expression has been ex ecuted the expression will be executed E Example Processing is repeated from when variable n 1 until 50 in increments of 1 and n is added to array variable DATA n If DATA n exceeds 100 however processing will end 159 Statement Descriptions Section 5 5 POR ns 17 TO BO VBY lt 1 DO DATA n DATA n n IF DATA n gt 100 THEN EXIT END IF END FOR RETURN Statement E Summary The function of the RETU
44. WHILE statement Missing END_CASE Missing END_FOR END_FOR is not provided at the end of the FOR statement Missing END_IF END_IF is not provided at the end of the IF statement Missing END_REPEAT END_REPEAT is not pro vided at the end of the REPEAT statement 184 END_CASE is not provided at the end of the CASE state ment Structured Text Errors Appendix B Error Message _Causeoferror Exame Missing END_WHILE END_WHILE is not pro vided at the end of the WHILE statement Missing Input Parameter All The function argument is not Y EXPT X input variables must be set specified or is insufficient Missing OF OF is not included in CASE statement Missing THEN THEN is not included in IF statement Missing TO TO is not included in FOR statement Missing UNTIL UNTIL is not included in REPEAT statement Missing The array index for the array X Array Array is an array variable variable has not been speci fied Missing The array index for the array X Array 2 Array is an array variable variable has not been speci fied Missing constant A constant is not provided in CASE A OF the integer equation of the 2 Xt CASE statement mi T END_CASE NOT operation not supported The NOT operator was used Result NOT 1 on a literal number for a numeric value Negation not supported by s A minus symbol was used Y
45. Window Watch A Watch Window will be displayed 2 Use any one of the three following methods to display the FB variables reg istration Dialog Box a Right click the instance and select Register in Watch Windows from the pop up menu Copy the instance and paste it in the Watch Window Right click an empty row in the Watch Window and select Register in Watch Windows from the pop up menu FB variables registral x PLC NewPLC1 FB Instance sampe0 o o Usage Internal X Data Type Al Y Name DataType Comment P_ER BOOL Error Bit Ok_Bit BOOL Range Che NG_Bit BOOL Range Che AddressOk_Bit BOOL Addres Aa Control_D ata WORD CMAND co Tmp Data WORD For interna Phase WORD Process or Command Data WORD CMNO cor Response Data WORD CMAD res P_Error BOOL Error Bit 4 re OF Cancel 3 Select Usage Data Type The FB Instance setting can also be selected The default Usage is N Internal and the other available selections are I Input O Output and E External The default Data Type is A All Special data types BOOL and INT can also be selected 4 Click the OK Button The selected variable will be registered in the Watch Window and the value will be displayed as shown below 117 Procedures Section 3 2 Monitoring Input Variables and Output Variables in Instances Simulation of Ladder ST Programs in Instances 118 1 2 3 Hx jo
46. and instructions will be initialized i e turned OFF when online editing is finished e After performing online editing do not turn OFF the power supply to the PLC until the CPU Unit has finished backing up data to the built in flash memory i e until the BKUP indicator stops flashing If the power supply is turned OFF before the data is backed up the data will not be backed up and the program will return to the status it had before online editing was performed 127 Procedures Section 3 2 128 Part 2 Structured Text ST SECTION 4 Introduction to Structured Text This section introduces the structure text programming functionality of the CX Programmer and explains the features that are not contained in the non structured text version of CX Programmer Aad Wana Ces o2doae ane tows PAR PSM Coke aE ORE eS 132 Ael OVERVIEW 323 e ae in Baoan to baie er or eto eee ee aR 132 4 2 CxX Programmer Specifications 20 0 ccc ee eee eee 133 4 2 1 PLC Models Compatible with ST Programs ST Tasks 133 A 2 2 SPCCIMCAUONS 4 5 2 H6a teed Phe ade a NI SaGs a sacs deeds 133 131 ST Language 4 1 4 1 1 132 Section 4 1 ST Language Overview This section explains the specifications and operating procedures for ST pro grams directly allocated to CX Programmer tasks ST tasks Refer to the fol lowing sections for information on functions and operations specific to ST programs used in other progra
47. and select Properties from the pop up menu 2 Click the Memory Tab right click the area for which to reserve memory and select Online edit reserved memory from the pop up menu Function Block Properties S General Protection Comments Memon Required Memory 27 Step Required Assigned area _ Reserved memc f 3 Enter the size of memory to reserve in each field in the Memory Size Edit for FB Online Edit Dialog Box Memory Size Edit for FB Online x Address allocation area Ok ncel Reserved memory size BOOLSs ic O Cancel Reserved memory size non BOOL 0o 121 Procedures Section 3 2 Editing and Transferring a Function Block Definition 1 2 3 122 1 While online with the PLC right click a function block definition in the Workspace see note and select FB online Edit Begin from the pop up menu Note Online editing can also be started from the Function Block Defini tion Window the Instance Ladder ST Monitor Window or a function block call instruction from the normal ladder program or from a lad der program in a function block The following dialog box will be displayed before the FB Online Editor is started LC Programmer f 2 p x All Instances which were created From the FB Definition will be affected Check for the affected Instances which are listed in the Qukpuk window Do you start FB Online Edit E A
48. ankta EE NewPLci c31G H Offline ae JEE BOO FALSE Symbols GT 10 Table Settings ee Memory E H Programs Inputs Outputs Externals E 3 NewProgram1 00 7 Symbols Section1 4 3 amp END PEST PESTS ONTS TIES JF Function Block BOOL variable called aaa ERTS created on Inputs Sheet 1 After a variable is added it can be selected to display in reverse video then moved to another line by dragging and dropping To select a variable for dragging and dropping select the variable in any of the columns ex cept the Name field 2 After inputting a variable the sheet where the variable is registered can be changed by double clicking and changing the setting in the Usage field N Internals I Inputs O Outputs E Externals P In Out The variable can also be copied or moved between the sheets for internal external in put output and input output variables Select the variable right click and select Copy or Cut from the pop up menu and then select Paste 3 Variable names must also be input for variables specified with AT allocat ing actual address settings 4 The following text is used to indicate I O memory addresses in the PLC and thus cannot be input as variable names in the function block variable table e A W H HR D DM E EM T TIM C or CNT followed by a numeric value Procedures Section 3 2 Creating the Algorithm Using a Ladder Program 1 2 3 1 Press the C K
49. appear if the Yes Button was clicked New Function Block Invocation x FB Instance FE Definition FunctionBlock1 Cancel Enter the function block instance name and click the OK Button An in stance of the function block definition will be inserted below the original program circuits as shown below sampleO1 CX Programmer NewPLC1 NewProgram1 Section1 Diagram i E loj x File Edit Yiew Insert PLC Program Tools Window Help a x DeE RSAl sBOl Qe wseBlevr 428 L0 AR RE Awlar a g Q SE Blah e oO aE M gt mT Bt gt z o Program Name NewProgram1 i Section Name Section1 fm Symbols FOr 7 10 Table and Unit Setup Settings lt q Memory hid A Programs B 3 NewProgram1 00 Aa A Symbols pd sectiont a5 END FL odata Source wori amp F Function Blocks Se F FunctionBlock1 BE HH fon E Project f xia Name Address or Value paaa eS i a E E 20 49 s te we ae For Help press F1 NewPLC1 Net 0 Node 0 Offline irung 3 0 0 100 NUM 4 Enter the input conditions and parameters for the instance that was insert ed Note The function block definition generation function is convenient for converting existing ladder programming that has been proven in actual operation into function blocks The application of addresses within the selected program cir cuits is analyzed both inside and outside the selection to allo
50. ariable definitions fon TIMX tim_b ON_TIME C ENO i 2 Variable Definitions Type TIMER Internal tim_b TIMER Input ON_TIME INT Input OFF_TIME INT 1 Algorithm Standardized programming is written with variable names rather than real O memory addresses In the CX Programmer algorithms can be written in either ladder programming or structured text 2 Variable Definitions The variable table lists each variable s usage input output input output or internal and properties data type etc For details refer to 1 3 Variables The maximum number of function block definitions that can be created for one CPU Unit is either 128 or 1 024 depending on the CPU Unit model 13 Function Blocks Section 1 2 Instances Number of Instances 14 Note To use an actual function block definition in a program create a copy of the function block diagram and insert it in the program Each function block defini tion that is inserted in the program is called an instance or function block instance Each instance is assigned an identifier called an instance name By generating instances a single function block definition can be used to pro cess different I O data with the same function Not yet in program and memory not yet Block instance in program with memory allocated allocated object abstract Function Block Definition
51. calling function block s definitions Programming Restrictions Section 2 4 2 4 Programming Restrictions 2 4 1 Instructions Prohibited in Function Block Definitions AT Setting Restrictions Unsupported Data Areas Direct Addressing of I O Memory in Instruction Operands Restrictions for Input Variables Output Variables and Input Output Variables Unsupported Data Areas Interlock Restrictions Differentiation Instructions in Function Block Definitions Ladder Programming Restrictions There are some restrictions on instructions used in ladder programs Refer to the Programmable Controllers Instructions Reference Manual Cat No W474 Addresses in the following areas cannot be used for AT settings e Index Registers neither indirect nor direct addressing is supported and Data Registers Note Input the address directly not the AT setting e Indirect addressing of DM or EM Area addresses Neither binary mode nor BCD mode indirect addressing is supported e Addresses not variables can be directly input in Index Registers both indirect and direct addressing and Data Registers The following values can be input in instruction operands Direct addressing IRO to IR15 Indirect addressing IRO to IR15 Con stant offset example 5 IRO DR offset DRO IRO Auto increment RO Auto decrement IRO e Direct addressing in instruction operands is not supported for any other areas in I O memory
52. constant for the variable Examples Example 1 Substitute variable A with the result of the equation X 1 A X4 1 Example 2 Substitute variable A with the value of variable B A B Example 3 Substitute variable A with the constant 10 A 103 E Precautions The data type of the equation variable or constant to be assigned must be the same as the data type of the variable to be substituted Otherwise a syn tax error will occur 5 5 2 Control Statements IF Statement Single Condition E Summary This statement is used to execute an expression when a specified condition is met If the condition is not met a different expression is executed E Reserved Words IF THEN ELSE END_IF Note ELSE can be omitted E Statement Syntax IF lt condition gt THEN lt expression_1 gt ELSE lt expression_2 gt END IF 148 Statement Descriptions Section 5 5 E Process Flow Diagram E Usage Use the IF statement to perform a different operation depending on whether a single condition condition equation is met E Description Condition If true execute expression_1 Condition If false execute expression_2 E Precautions e IF must be used together with END_IF e The condition must include a true or false equation for the evaluation result Example IF A gt 10 The condition can also be specified as a boolean variable only rather than an equation As a result the variable value is 1 ON True resul
53. e parangi e rE 20 38 36 eS m LO o gt NewProject T Symbols Q 10 Table and Memory card Error log PLC Clock lt j Memory A Programs 3 NewProg END Actuator ED NewPLC1 CJ1G H Monitor Mode E F Function Blocks WorkMove FB ActuatorCo DYDThickJudge FB Avgv alue_T Judge BOOL FALSE Unit Setup Judge BOOL FALSE The upper limit is 1 26mm the lower limit is 1 14mm 1 20mm 5 DYDThickJudge AvgValue_ThresholdCheck BOOL rami 00 Running ENO Symbols ontrols execut Section1 Measuret BOOL Result Measuremen Measure2 Control F Avgvalue_Thresholdcheck Measuremen EF DYD_ThickSelectControl Measures F WorkMoveControl_LSONcount Measuremen 1 26 1 14 4 xi 4 Name Address or Value Comment Internals Inputs Outputs In Out Externals xit The Function Block to be online edited is used in the following Og AMS mmm A NewProgram1 Section 1 Step 4 4 gt TER Compile A Find Report A Transfer 7 KE w For Help press F1 Bl NewPLC1 Net 0 Node 0 Monitor Mode O 4ms SYNC rung 0 2 1 100 NUM After editing the contents of the function block definition select FB online Edit Send Changes The following FB Online Edit Transfer Dialog Box will be displayed Transfer mode f Normal mo
54. for the Software is one year from either the date of purchase or the date on which the Software is delivered to the specified location 2 If the User discovers a defect in the Software i e substantial non conformity with the manual and returns it to OMRON within the above warranty period OMRON will replace the Software without charge by offering media or downloading services from the Internet And if the User discovers a defect in the media which is attributable to OMRON and returns the Software to OMRON within the above warranty period OMRON will replace the defective media without charge If OMRON is unable to replace the defective media or correct the Software the liability of OMRON and the User s remedy shall be limited to a refund of the license fee paid to OMRON for the Software LIMITATIONS OF LIABILITY 1 THE ABOVE WARRANTY SHALL CONSTITUTE THE USER S SOLE AND EXCLUSIVE REMEDIES AGAINST OMRON AND THERE ARE NO OTHER WARRANTIES EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE IN NO EVENT WILL OMRON BE LIABLE FOR ANY LOST PROFITS OR OTHER INDIRECT INCIDENTAL SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF USE OF THE SOFTWARE 2 OMRON SHALL ASSUME NO LIABILITY FOR DEFECTS IN THE SOFTWARE BASED ON MODIFICATION OR ALTERATION OF THE SOFTWARE BY THE USER OR ANY THIRD PARTY 3 OMRON SHALL ASSUME NO LIABILITY FOR SOFTWARE DEVELOPED BY THE USER OR ANY THIRD PARTY
55. function block instance in the program or variable table and either copy paste or drag drop the instance into the Watch Window e Move the cursor to an empty line in the Watch Window and select Register in Watch Window from the pop up menu Other Function Block Improvements e The cross reference pop up function is supported in ladder programs within function blocks e The ST language help program can be started from the pop up menu in ST Editor e A function block s definitions can be opened just by double clicking the function block instance e The cursor automatically moves down after a function block instance s parameter input is confirmed 28 SECTION 2 Function Block Specifications This section provides specifications for reference when using function blocks including specifications on function blocks instances and compatible PLCs as well as usage precautions and guidelines 2 1 Function Block Specifications 6 2202 cratndm anes Trae EENE BROS Ee 30 2 1 1 Function Block Specifications 00 cee eee 30 2 1 2 Fonction Block Elements siris s sern ont n teh Gon ean Sede 31 2 2 Data Types Supported in Function Blocks 0 0 0 0 000000 41 22a Base Data Ly pes ea aaa aaaea aa aa 41 22 2 Derivative Data Types so4 sexehcereid ev cecte sd aa 41 Jo Mmstance SPeCiIiCaUONS 4c 5452G 4ceesdes eee Hehe Moe kd EDERRAREN 42 2 3 1 Composition of an Instance 0 cee ee eee 42 2 3 2
56. function block version of CX Programmer Section 2 provides specifications for reference when using function blocks including specifications on function blocks instances and compatible PLCs as well as usage precautions and guidelines Section 3 describes the procedures for creating function blocks on the CX Programmer Part 2 Part 2 contains the following sections Section 4 introduces the structure text programming functionality of the CX Programmer and explains the features that are not contained in the non structured text version of CX Programmer Section 5 provides specifications for reference when using structured text programming as well as programming examples and restrictions Section 6 explains how to create ST programs Appendices provide information on structured text errors and ST function descriptions N WARNING Failure to read and understand the information provided in this manual may result in per sonal injury or death damage to the product or product failure Please read each section in its entirety and be sure you understand the information provided in the section and related sections before attempting any of the procedures or operations given XV XVI Read and Understand this Manual Please read and understand this manual before using the product Please consult your OMRON representative if you have any questions or comments Warranty and Limitations of Liability WARRANTY 1 The warranty period
57. if the DM Area is specified for the non re tained area Retained Area None Timer Area tem SSC ontemts Allocated variables Variables with TIMER set as the data type Applicable areas T Timer Area Timer Flag 1 bit or timer PVs 16 bits Allocated words T206 to T255 Timer Flag 1 bit or timer PVs 16 bits default Counter Area O iem O coes O Allocated variables Variables with COUNTER set as the data type 45 Instance Specifications Accessing Function Block Instance Area from the User Program Note Comments Creating Multiple Instances Calling the Same Instance Making Multiple Instances 46 Section 2 3 a O cones O Applicable areas C Counter Area Counter Flag 1 bit or counter PVs 16 bits Allocated words C206 to C255 Counter Flag 1 bit or counter PVs 16 bits default If the user program contains an instruction to access the function block instance area an error will be displayed in the Compile Tab of the Output Win dow of CX Programmer if the following operations are attempted e Attempting to write during online editing writing not possible e Executing program check Selecting Compile from the Program Menu or Compile All PLC Programs from the PLC Menu Example If WO to W511 is specified as the non retained area of the function block instance area and WO 00 is used in the ladder program an error will occur when compiling and be displayed as ERROR omit
58. in this sense The abbreviation PLC means Programmable Controller PC is used however in some Program ming Device displays to mean Programmable Controller Visual Aids The following headings appear in the left column of the manual to help you locate different types of information Note Indicates information of particular interest for efficient and convenient opera tion of the product 1 2 3 1 Indicates lists of one sort or another such as procedures checklists etc OMRON 2008 All rights reserved No part of this publication may be reproduced stored in a retrieval system or transmitted in any form or by any means mechanical electronic photocopying recording or otherwise without the prior written permission of OMRON No patent liability is assumed with respect to the use of the information contained herein Moreover because OMRON is con stantly striving to improve its high quality products the information contained in this manual is subject to change without notice Every precaution has been taken in the preparation of this manual Nevertheless OMRON assumes no responsibility for errors or omissions Neither is any liability assumed for damages resulting from the use of the information contained in this publication Part 1 Function Block SECTION 1 Introduction to Function Blocks SECTION 2 Function Block Specifications SECTION 3 Creating Function Blocks Part 2 Structured Text SECTION 4 Int
59. is not supported e CX Programmer Ver 6 0 and later versions Supports nesting up to 8 levels The instance called from the program is counted as one nesting level Number of variables Maximum number of variables per function block definition used SA A ei n e Input output variables 16 max not including internal Input variables input output variables 64 max variables external vari ables EN and ENO e Output variables input output variables 64 max 30 Function Block Specifications Section 2 1 2 1 2 Function Block Elements Function Block Definition Name Language Note Variable Definitions Variable Names The following table shows the items that must be entered by the user when defining function blocks o ltem Description Function block The name of the function block definition definition name Language The programming language used in the function block defini tion Select ladder programming or structured text Variable definitions Variable settings such as operands and return values required when the function block is executed e Type usage of the variable e Name of the variable e Data type of the variable e Initial value of the variable Algorithm Enter the programming logic in ladder or structured text e Enter the programming logic using variables e Input constants directly without registering in variables Comment Function blocks can have comments Each function block
60. keyword has been used in an invalid location For example use of the EXIT statement outside a loop syn tax Data may be lost due to con version of a data type with a large data size to a data type with a small data size Y DINT_TO_INT X X is a DINT type variable Y is an INT type variable Appendix C Function Descriptions Standard Functions Text String Functions LEN Detect String Length e Function Finds the length of a specified text string e Application Return_value LEN string e Arguments and Return Values Data type String STRING Specifies the text string for which to find the length Return_value INT Returns the size of the speci fied text string e Example Variables STRING Message Message AIBICIDIEIFIGQGQIH INT Result Result LEN Message 8 is stored in Result variable LEFT Extract Characters from Left e Function Extracts the specified number of characters from the left of the specified text string e Application Return_value LEFT Source_string Number_of_characters e Arguments and Return Values Source_string STRING Specifies the text string from which to extract characters Number_of_characters INT UINT Specifies the number of characters to extract STRING Returns the extracted characters e Example Variables M AIBICI ID EIFI GI H STRING Message eee STRING Result Result LEFT Message 3 ABC is stored in the Result varia
61. of FB option in the General Tab 3 2 3 Defining Function Blocks Created by User A function block is defined by registering variables and creating an algorithm There are two ways to do this e Register the variables first and then input the ladder program or structure text e Register variables as they are required while inputting input the ladder program or structure text Registering Variables First Registering Variables in The variables are divided by type into five sheets in the variable table Inter the Variable Table nals Inputs Outputs Input Output and Externals These sheets must be switched while registering or displaying the variables 1 2 3 1 Make the sheet for the type of variable to be registered active in the vari able table See note Place the cursor in the sheet right click and per form either of the following operations e To add a variable to the last line select Insert Variable from the pop up menu e To add the variable to the line above or below a line within the list se lect Insert Variable Above or Below from the pop up menu Note The sheet where a variable is registered can also be switched when inserting a variable by setting the usage N Internals I In puts O Outputs E Externals P In Out The New Variable Dialog Box shown below will be displayed e Name Input the name of the variable e Data Type Select the data type e Usage Select the variable type e Initial Va
62. oleae eCS1G H CS1G CPU42H 43H 44H 45H series PLCs N J se es PLCs apis CS1H H CS1H CPU63H 64H 65H 66H 67H For details refer to 1 6 Version e CJ1H H CJ1H CPU65H 66H 67H 64H R 65H R 66H R 67H R Upgrade Information e CJ1M CJ1M CPU11 12 13 21 22 23 The following CP series CPU Units are compatible e CP1H CP1H X XA Y e CP1L CP1L M L Note If a user program containing function blocks created on the CX Program mer Ver 5 0 or later is downloaded to a CPU Unit that does not support function blocks CS CJ series CPU Units with unit version 2 0 or earlier all instances will be treated as illegal commands and it will not be possi ble to edit or execute the user program G5D Used for the NSJ5 TQOLI G5D NSJ5 SQO0L G5D NSJ8 TVOL_I G5D NSJ10 TVOLI G5D and NSJ12 TSOLI G5D M3D Used for the NSJ5 TQOLJ M3D NSJ5 SQOLJ M3D and NSJ8 TVOLIJ M3D e FQM1 CM FQM1 CMO002 e FQM1 MMA FQM1 MMA22 e FQM1 MMP FQM1 MMP22 CS CJ CP Series Function Restrictions e Instructions Not Supported in Function Block Definitions Block Program Instructions BPRG and BEND Subroutine Instructions SBS GSBS RET MCRO and SBN Jump Instructions JMP CJP and CJPN Step Ladder Instructions STEP and SNXT Immediate Refresh Instructions O REFRESH IORF ONE MS TIMER TMHH and TMHHxX These tim ers can be used with CJ1 H R CPU Units Note For details and other restrictions refer to 2 4 Programming Restrictions Introducing the Function Blo
63. program online monitors ST variable status as well as I O bit and word status I O bit monitor of the ladder diagram in the instance Supported by CX Programmer Ver 6 1 and later only Register in Watch Window Displays the FB variables registration Dialog Box in order to register a variable from the selected instance to the Watch Window Function Block Definition Displays the selected instance s function block definition on the right side of the window Shortcut Keys F Key Pasting Function Move the cursor to the position at which to create the copied function block Block Definitions in instance in the Ladder Section Window and press the F Key This operation is Program the same as selecting nsert Function Block Invocation Enter Key Inputting Position the cursor at the left of the input variable or input output variable or Parameters at the right of the output variable and press the Enter Key This operation is the same as selecting Insert Function Block Parameter 1 2 Function Blocks 1 2 1 Outline A function block is a basic program element containing a standard processing function that has been defined in advance Once the function block has been defined the user just has to insert the function block in the program and set the I O in order to use the function As a standard processing function a function block does not contain actual addresses but variables The user sets addresses or constants in those vari ab
64. recognized as WORD e UDINT BCD is recognized as DWORD e ULINT BCD is recognized as LWORD e CHANNEL is recognized as WORD 2 This data type cannot be used in an ST program A program error will oc cur if this data type is specified 5 2 2 Derivative Data Types 1 dimensional array 32 000 elements max 137 Inputting ST Programs Section 5 3 5 3 Inputting ST Programs 5 3 1 Syntax Rules Statement Delimiters e Statements assignment and control statements must always end in a semicolon The statement cannot be completed by simply using a car riage return e Do not use a semicolon as a delimiter within a statement such as fol lowing reserved words values or equations Inserting a semicolon within a statement except at the end of a statement will result in a syntax error Comments e Comments are enclosed in parentheses and asterisks i e comment Any characters except parentheses and asterisks can be used within a comment Nesting within comments is not supported Notation Example comment this is the comment Note Nesting in comments is not possible i e this type of nesting is not supported Spaces Carriage Returns e Any number of spaces carriage returns and tabs or combinations of Tabs these can be used anywhere within statements Therefore use spaces carriage returns and tabs between reserved words and equations to make them easier to read e Spaces carriage re
65. send function INT iProcess Process number STRING Message Send message 1 BOOL P_TXDU_Exe TXDU Execution Flag AT 1519 05 Unit number O i i Use serial port 2 s BOOL P_CominstEnable Communications Port Enable Flag AT A202 07 Use port 7 Use the following Unit number O Serial port number 2 Logical port number 7 Send data when P_DoSendData is ON and iProcess is 0 IF P_DoSendData TRUE AND iProcess 0 THEN iProcess 1 P_DoSendData FALSE END_IF Execute send processing according to process number CASE iProcess OF 1 Create send text data Message READ iProcess 2 2 Execute send function if Communications Port Enable Flag and TXDU Execution Flag are ON IF P_ComInstEnable TRUE AND P_TXDU_Exe FALSE THEN TXD_SCU Message 0 2 7 iProcess 3 END_IF 3 Sending has been completed if Communications Port Enable Flag is ON IF P_ComInstEnable TRUE THEN iProcess 0 END_IF END_CASE 195 196 Function Descriptions Appendix C Related Auxiliary Address Area Flag Communications A202 00 to A202 07 ON when network communications can be executed The bit Instruction Enable numbers correspond directly to the internal logic port numbers Flags i Bits 00 to 07 Internal logic ports O to 7 Related CPU Bus Unit Area bits n CIO 150 25 x ON when TXDU is being executed unit number Port 1 n 9 Port 2 n 19 Fo
66. single file cxf for reuse in block library other projects files files Note The structured text ST language conforms to the IEC 61131 3 standard but CX Programmer Ver 5 0 supports only assignment statements selection statements CASE and IF statements iteration statements FOR WHILE REPEAT and EXIT statements RETURN statements arithmetic operators logical operators comparison functions numeric functions standard string functions numeric string functions OMRON expansion functions and com ments For details refer to SECTION 5 Structured Text ST Language Spec ifications in Part 2 Structured Text ST Introducing the Function Blocks Section 1 1 1 1 3 Files Created with CX Programmer Ver 6 0 or Later Project Files cxp and Projects created using CX Programmer that contain function block definitions ai Coby Program and projects with instances are saved in the same standard project files iles obj cxp and file memory program files ob j The following diagram shows the contents of a project The function block def initions are created at the same directory level as the program within the rele vant PLC directory Project file cxp PLC1 Global symbol table I O table PLC Setup PLC memory table Program with rung comments Local symbol table Section 1 with instances a Section 2 with instances lt i i END section with instances lt Function block definitions Ea
67. specify a sequence of integers use two periods as delim iters between the first and last integers 153 Statement Descriptions Section 5 5 E Examples Example 1 If variable A is 1 variable X is substituted with numerical value 1 If variable A is 2 variable X is substituted with numerical value 2 If variable A is 3 variable X is substituted with numerical value 3 If neither of these cases matches variable Y will be substituted with 0 CASE A OF Lexis VED Gee S235 ELSE Y 0 END CASE Example 2 If variable A is 1 variable X is substituted with numerical value 1 If variable A is 2 or 5 variable X is substituted with numerical value 2 If vari able A is a value between 6 and 10 variable X is substituted with numerical value 3 If variable A is 11 12 or a value between 15 and 20 variable X is substituted with numerical value 4 If neither of these cases matches variable Y will be substituted with 0 CASE A OF IsX i1 27 DiX 6 10 X 3 LED sche gl Os eee ae ELSE Y 0 END CASE FOR Statement E Summary This statement is used to execute a specified expression repeatedly until a variable referred to here as an iteration variable reaches a specified value E Reserved Words FOR TO BY DO END_FOR Note BY can be omitted E Statement Syntax FOR lt teration_variable gt lt initial_value gt TO lt final_value_equation gt BY lt increment_value_equation gt DO lt expression gt E
68. text string from the RS 232C port on the CPU Unit e Application TXD_CPU Send_string e Conditions The serial communications mode of the RS 232C port must be set to no protocol communications e Arguments and Return Values Data type STRING Specifies the text string to send 192 Function Descriptions Appendix C e Example CPU Unit Get Scene Number command READ Barcode Reader Variables BOOL DoSendData Variable to control send function INT iProcess Process number STRING Message Send message i BOOL SendEnableCPUPort Send Ready Flag AT A392 05 Send data when DoSendData is ON and iProcess is 0 IF DoSendData TRUE AND iProcess 0 THEN iProcess 1 DoSendData FALSE END_IF Execute send processing according to process number CASE iProcess OF 1 Create send text data Message READ iProcess 2 Execute send function if sending is enabled IF SendEnableCPUPort TRUE THEN TXD_CPU Message iProcess 3 END_IF Sending is finished if Send Ready Flag is ON IF SendEnableCPUPort TRUE THEN iProcess 0 END_IF END_CASE Related Auxiliary Address Description Area Flag RS 232C Port Send A392 05 ON when sending is enabled in no protocol mode Ready Flag For further information and precautions on related Auxiliary Area flags refer to the section on TXD Serial Com munications Instruction in the CS CJ series I
69. the simulator s program Step Run When there is a function block call instruction this com Step In mand moves to execution of the internal program step Step Run When a function block s internal program step is being exe Step Out cuted this command returns to the next higher level call source and pauses execution Step Run Executes steps continuously for a fixed length of time Continuous Step Run Step Run Executes for one cycle and pauses execution Scan Run Always Display Used with the Step Run or Continuous Step Run com Current Execu mands to automatically scroll the display and always show tion Point the pause point Break Point List Displays a list of the break points that have been set Operation can be jumped to a specified point Main Pop up Menus Pop up Menu for Function Block Definitions Insert Function Block Creates a function block definition with a ladder programming language algo rithm Structured Text Creates a function block definition with an ST language algorithm Reads a function block definition from a function block library file cxf Pop up Menu for Inserted Function Blocks Open Displays the contents of the selected function block definition on the right side of the window Save Function Block File Saves the selected function block definition in a file Compile Compiles the selected function block definition FB online Edit Begin Starts online editing of a function block
70. the size to be processed by the instruction operand is not fixed The number of array elements must be greater than or the same as the size specified in the other operands e If the other operand specifying a size is a constant the CX Program mer will output an error when compiling If the other operand specifying a size is a variable the CX Programmer will not output an error when compiling even if the size of the array variable is not the same as that specified by the other operand vari able A warning message however will be displayed In particular if the number of array elements is less than the size specified by the oth er operand e g the size of the instruction operand is 16 and the num ber of elements registered in the actual variable table is 10 the instruction will execute read write processing for the area that exceeds the number of elements For example read write processing will be ex ecuted for the 6 words following those for the number of elements reg istered in the actual variable table If these words are used for other instructions including internal variable allocations unexpected oper ation will occur which may result in serious accidents Check that the system will not be adversely affected if the size of the variable specified in the operand is less than the size in the operand definition before starting PLC operations Confirm safety at the destination node before transferring a program to another
71. to INT Data Type Combinations The combinations of data types that can be converted are given in the follow ing table YES Conversion possible No Conversion not possible BOOL DINT LINT UINT UDINT ULINT DWORD LWORD REAL LREAL BCD_ BCD_ he CEN C m eo CONN me CONN CONN a CCN C CO YES No YEs YEs YES YES YES YES YES YES YES YES YES Number String The following number string conversion functions can be used in structured Conversion Functions text Syntax Source_data_type_TO_STRING Variable_name Example INT_TO_STRING C In this example the integer variable C will be changed to a STRING vari able STRING_TO_New_data_type Variable_name Example STRING_TO_INT C 145 ST Language Configuration Section 5 4 In this example the STRING variable C will be changed to an integer Data Type Combinations The combinations of data types that can be converted are given in the follow ing table YES Conversion possible No Conversion not possible a me MN ee ee No YES STRING No ves ves No ves ves No ves ves No No No No 5 4 6 OMRON Expansion Functions Description Functions that write data to Memory Cards Functions that send and received text strings Functions that convert between degrees and radians Memory Card The following functions can be used with CS CJ series CPU Units with unit Functions version 4 0 or later or CU2 series CPU Units Argument data type Ret
72. user can input the desired I O memory address in this property This property can be set for internal variables only Even if a specific address is set the variable name must still be used in the algorithm 19 Variables Section 1 3 Array Settings Initial Value Retain Size Refer to Variable Definitions in 2 1 2 Function Block Elements for details on AT settings and 2 5 3 AT Settings for Internal Variables for details on using AT settings A variable can be treated as a single array of data with the same properties To convert a variable to an array specify that it is an array and specify the maximum number of elements This property can be set for internal variables and input output variables only Only one dimensional arrays are supported by the CX Programmer Ver 5 0 and later versions e Setting Procedure Click the Advanced Button select the Array Variable option and input the maximum number of elements e When entering an array variable name in the algorithm in a function block definition enter the array index number in square brackets after the vari able number For details on array settings refer to Variable Definitions in 2 1 2 Function Block Elements This is the initial value set in a variable before the instance is executed for the first time Afterwards the value may be changed as the instance is executed For example set a boolean BOOL variable bit to either 1 TRUE or O FALSE Set a WO
73. variables instance area Consecutive addresses are required for each instance so all of the variables will be allocated to a different block of addresses if the original block of addresses cannot accommodate the change in variables This will result in an unused block of addresses The following procedure can be used to eliminate the unused areas in memory so that memory is used more efficiently 1 2 3 1 Select the instance in the Ladder Section Window right click and select Memory Allocation Function Block SFC Memory Optimize Func tion SFC Memory from the PLC Menu The following dialog box will be displayed i j Optimising Function Block memory will force the memory to be re allocated t and therefore the project will no longer match with the PLC Do you wish to continue ves No 105 Procedures Section 3 2 2 Click the OK Button Allocations to the function block instance areas will be optimized 3 2 8 Copying and Editing Function Block Definitions Use the following operation to copy and edit the function block definition that has been created 1 Select the function block to copy right click and select Copy from the pop up menu 2 Position the cursor over the function block item under the PLC in the project directory right click and select Paste from the pop up menu 3 The function block definition will be copied copy is indicated before the name of the function block definition at the copy s
74. when the same function block definition has been copied to multiple locations 78 SECTION 3 Creating Function Blocks This section describes the procedures for creating function blocks on the CX Programmer Bol Procedural FloW aueri ie al wks Roe ew eke ee ed eee Sass 80 Ore Preedi Ss cat Gi hae eu a ao oeet eee meaner eee 82 Se Ceana Proje eesriie eae hes eee ee eee eek 82 3 2 2 Creating a New Function Block Definition 82 3 2 3 Defining Function Blocks Created by User 85 3 2 4 Creating Instances from Function Block Definitions 97 3 2 5 Setting Function Block Parameters Using the Enter Key 99 3 2 6 Setting the FB Instance Areas 0 0 0 0 eee eee 102 3 2 7 Checking Internal Address Allocations for Variables 104 3 2 8 Copying and Editing Function Block Definitions 106 3 2 9 Checking the Source Function Block Definition from an Instance 106 3 2 10 Checking Instance Information such as Nesting Levels 106 3 2 11 Checking the Size of the Function Block Definition 107 3 2 12 Compiling Function Block Definitions Checking Program 108 3 2 13 Printing Function Block Definition 0004 108 3 2 14 Password Protection of Function Block Definitions 109 3 2 15 Comparing Function Blocks 0 0 0 112 3 2 16 Saving and Reusing Function Block Definition Files 112 3 2 17 Downlo
75. word D10 e When the input to EN is OFF the instance is not executed bit 1 0 is turned OFF and the content of D10 is not changed Operation when the The system calls a function block when the input to the function block s EN Instance Is Executed input variable is ON When the function block is called the system generates the instance s variables and copies the algorithm registered in the function block The instance is then executed Pulse_2sON_1SOFF Algorithm Body tim_b i TIMX tim_a OFF_TIME 1 The FB is called i i i tim_a 3410 TIMX tim_b ON_TIME 3 ENO 2 The system generates the instance i i variables and copies the algorithm 077 CLOCK PULSE EN ENO FB instance Pulse_2SON_1SOFF Usage Name Value Internal 200 100ms_PULSE_tim_a Internal 200 100ms_PULSE_tim_b s Input 200 100ms_PULSE_ON_TIME amp 20 200 100ms_PULSE_OFF_TIME amp 10 3 The contents of the Algorithm Image instance are executed i Pulse_2SON_1SOFF tim_b Pulse_2sON_1SOFF tim_a Pulse _2sON_1sOFF OFF_TIME Pulse_2sON_1SOFF tim_a Pulse_2sON_1SOFF tim_b Pulse_2sON_1SOFF ON_TIME amp Pulse_2sON_1SOFF ENO The order of execution is as follows 1 Read data from parameters to input variables 2 Execute the algorithm 3 Write data from output variables to parameters Input to EN is ON Parameters 1 Read values from parameters to input variables 2 Execute the
76. words will be automatically displayed in blue 173 Procedures Section 6 1 comments in green tex strings in brown errors in red and everything else in black 4 To change the font size or colors select Options from the Tools Menu and then click the ST Font Button on the Appearance Tab Page The font names font size default is 8 point and color can be changed 5 For details on ST language specifications refer to SECTION 5 Structured Text ST Language Specifications in Part 2 Structured Text ST in this manual Registering Variables When using structured text a dialog box will not be displayed to register the While Using variable whenever a variable name that has not been registered is input Be Structured Text sure to always register variables used in standard text programming in the variable table either as you need them or after completing the program 6 1 5 Compiling the ST Program Checking Program The ST program can be compiled to perform a program check on it Use the following procedure 1 2 3 1 Select the ST program right click and select Compile from the pop up menu Alternately press the Ctrl F7 Keys 2 The ST program will be compiled and the results of the program check will be automatically displayed on the Compile Table Page of the Output Win dow Rack Local Ilx Name Datatype Address Value NewProject flag INT DO NewPLC1 CJ1H H Offline areen lamp BOO
77. 1 Cycle Task Oe Cycle Task 03 Cycle Task 04 Cycle Task 05 Size 3 Click the Close Button to close the Program Properties Dialog Box ait Memory ge Memory l ee Programs ai a Programs part NewProgram 00 gt EF Ag NewProgram1 00 Ee SY Symbols SY Symbols b LG Section bk a Section ec END fa END Efer Unassigned 2 ewProgram2 O01 Symbols m Symbols Bese P Function Blocks r Function Blocks 4 When the program is allocated to a task the check mark over the ST pro gram s icon will be deleted The allocated task number will be shown in pa rentheses after the program name 6 1 4 Creating the ST Program There are two ways to create the ST program s content e Input the ST language after registering the variables e Register the variables as you input the ST language Inputting the ST There are two kinds of variables global variables and local variables This Language after section explains how to set local variables For details on setting global vari Registering Variables ables refer to the CX Programmer Operation Manual W446 1 Registering Variables with Local Addresses 1 2 3 1 Double click the inserted ST program s Symbols in the project workspace Ltt Memory Reusable File k dA Programs a NewProgr Allow Docking i i G Symbr Hide E END Float In Main Window y Froperties 2 The symbol table will be displayed
78. 10 elements DT _WORD 0 is specified for the first operand and DT_WORD 9 is specified for the second operand of BSET 071 Broo BSET 071 Block Set 10 Source word DT WORD O Starting word DT_ VORD 9 End word Procedures Section 3 2 Operands with Sizes Affected by Other Operands Example Five Transfer Words DO Specified for the First Source Word and D100 Specified for the First Destination Word for XFER 070 3 XFER O70 Transfer 8 amp 5 Number of words First source word First destination word SOLEEELEELEEP LEE EL EEE Le As shown below the variables must be changed to set the first elements in two different arrays after the function block definition has been generated Example DT_WORD1 and DIT_WORD2 are set as WORD array variables with 5 elements each DT_WORD1 0 is specified for the first word for the first operand and DI_WORD2 0 is specified for first word for the second operand of XFER 070 BiTOO XFERCO FO Transfer amp 5 Number of words DT_VVORD1 0 First source word DT_ YORD2 0 First destination word 3 2 4 Creating Instances from Function Block Definitions If a function block definition is registered in the global symbol table either of the following methods can be used to create instances Method 1 Select the function block definition insert it into the program and input a new instance name The instance will automatically be registered in the global sym
79. 1535 These words are different to the standard Holding Area used for programs HOOO to H511 and are used only for the function block instance area internally allocated variable area e These words cannot be specified in AT settings for internal variables e These words cannot be specified as instruction operands e These words are displayed in red if they are input when a function block is not being created e Although the words can be input when creating a function block an error will occur when the program is checked e f this area is specified as non retained turn the power ON OFF or clear the area without retaining the values when starting operation To prevent overlapping of instance area addresses with addresses used in the program set H512 to H1535 Function Block Holding Area words for the non retained area and retained area If there are not sufficient words use words in areas not used by the user program FQM1 Flexible Motion controller FB Instance Default value Applicable memory Area Start address End address Size argas 5000 5999 1000 CIO WR DM Counters Non retained Areas O iem O oes OO Variables for which the retain property for power OFF and operation start is set as retained See note 1 I O CIO W Work Area and D DM Area See note 2 Allocated words CIO 5000 to CIO 5999 default 1 Except when the data type is set to TIMER or COUNTER 2 Bit data can be accessed even
80. 2 8 o tem Specification Function Maxi 1 024 1 024 1 024 1 024 128 1 024 1 024 blocks mum number of definitions Maxi 2 048 2 048 2 048 2 048 2 048 2 048 mum number of instances Com Total for 2 048 2 048 1 280 1 280 1 280 1 280 ment all files Memory Kbytes Unit ver 4 0 or later 512 Inside Function com block pro ment gram memory memory ver 3 0 Kbytes or later Com 64 ment files Kbytes aaa Program index files Kbytes Variable tables Kbytes i t Specification ere CJ1G CJ1G CJ1G CJ1G CPU45H CPU44H CPU43H_ CPU42H I O points 2 560 aR 280 Program capacity 250K 120K steps Extended Data 32K words 32K words 32K words 32K words 32K words Memory x13 X 7 banks X 3 banks X1 bank X 3 banks banks EO 00000 EO 00000 EO 00000 EO 00000 EO 00000 to to to 32K words X 1 bank EO 00000 to EO 32767 to to E6_32767 E2_ 32767 E2 32767 E2_32767 EC_32767 Function Maxi 1 024 1 024 1 024 blocks mum number of definitions Maxi 2 048 2 048 2 048 mum number of instances Com Total for 1 280 1 280 1 280 1 280 ment all files Memory Kbytes Unit ver 4 0 or later 71 CPU Unit Function Block Specifications Section 2 8 o tem Specification O o Specification O O O Inside Function 1 664 1 664 1 024 512 1 024 512 512 512 com block pro ment gram memory memory ver 3 0 Kbytes or later
81. 33 Function Block Specifications Section 2 1 The value of the output variable CV is passed to the parameter specified as the output destination which is D100 in this case Example ADD_INT_DINT Algorithm Body EN EN SIGN IN16 tmp L IN32 tmp OUT32 i OUT32 is a DINT variable so Coage Name Data type the variable s value is passed to D1000 and D1001 OUT32 Comment Indicates successful execution of the Fun Initial value Retained ENO BOOL FALSE ENO BOOL FALSE OUT32 DINT ne E E E Outputs Internals Inputs Like internal variables the values of output variables are retained until the next time the instance is executed i e when EN turns OFF the value of the output variable is retained Example In the following example the value of output variable CV will be retained until the next time the instance is executed Product A counter Note 1 The same name cannot be assigned to an input variable and output vari able If it is necessary to receive a value from an external variable change the variable inside the function block and then return the result to the ex ternal variable use an input output variable 2 When the instance is executed output variables are passed to the corre sponding parameters after the algorithm is processed Consequently val ues cannot be written from output variables to parameters within the algori
82. 3647 aoe Negative value followed by i 9223372036854775807 UINT Unsigned integer 16 bits Positive value amp or followed amp 0 to 65535 UDINT Unsigned double 32 bits by integer integer ULINT Unsigned long 4 64 bits amp 0 to 18446744073709551615 word integer LINT Long 4 word inte 64 bits integer 9223372036854775808 to ger 100 Procedures Section 3 2 Input variable data Input method Setting range type REAL Real number 32 bits Positive value amp or followed 3 402823 X 1038 to 1 175494 by real number with decimal _ E point x 10738 0 1 175494 x 10 38 38 Negative value followed by 0 8 402823 x 10 Long real number 64 bits real number with decimal 1_79769313486232 X 10208 to WORD 16 bit data DWORD 32 bit data 32 bits followed by hexadecimal 00000000 to FFFFFFFF or amp 0 number 8 digits max to 4294967295 amp or followed by decimal number LWORD 64 bit data 64 bits followed by hexadecimal O000000000000000 to number 16 digits max FFFFFFFFFFFFFFFF or amp 0 to amp or followed by decimal 18446744073709551615 number Note point j 2 22507385850720 X 10 908 0 2 22507385850720 X 10998 to 1 79769313486232 x 10908 16 bits followed by hexadecimal 0000 to FFFF or amp 0 to 65535 number 4 digits max amp or followed by decimal number If a non boolean data type is used for the input variable and only a numerical v
83. 6 Changing PVs To change a PV select the desired variable in the ST variable monitor window displayed in reverse video when selected right click and select Set Value from the pop up menu Select the variable inputi 2 304856e 041 Float Inp UpLimit 0 0000000 Float Avge The Set New Value Dialog Box will be displayed Input the new value in the Value field Force setting and Force resetting Bits To force set force reset or clear the forced status select the desired variable in the ST variable monitor window displayed in reverse video when selected right click and select Force On Force Off Force Cancel or Force Cancel All Forces from the pop up menu Copying and Pasting in the Watch Window 1 2 3 1 To copy a variable to the Watch Window select the desired variable in the ST variable monitor window displayed in reverse video when selected right click and select Copy from the pop up menu 2 Right click in the Watch Window and select Paste from the pop up menu File Edit View Insert PLC Program Tools Window Help x OSER Bel ejat ala B l B AR AF R DTRS Sulas nalpaoe aK QS BiB S a O GB SEL amp So iw a a fo fo BE ee e j pAn aus o a m o A OE at pp gt axl NewProject G ann NewPLC1 CJ1G H Stop Program Avg alue Input Input2 Input3 3 0 o Av
84. 7 CJ2H CPU66 CJ2H CPU65 CJ2H CPU64 EIP EIP EIP EIP EIP I O points ss I O points ss 560 Program capacity 400K 250K 150K 100K steps Data memory Data memory 32K words The DM and EM areas can be accessed in bit units Extended Data 32K words X 25 32K words X15 32K words X10 32K words X 4 32K words X 4 Memory banks banks banks banks banks E0_00000 to E0_00000 to E0_00000 to E0_00000 to E0_00000 to E18_ 32767 EE 32767 E9 32767 E3_ 32767 E3_ 32767 Force set EM11toEM18 EM7toEME EM 6 to EM9 reset enabled area Function Maxi blocks mum number of definitions Maxi mum number of instances Source Symbol 3 5MB See note Com tables ment com areas ments program indexes Note There is no restriction on the memory capacity by the stored data The total capacity of source and comment areas is 3 5 MB eee H CPU Units Specification ie ee CS1H CS1H CS1H CS1H CS1G CS1G CS1G CSi1G CPU67H CPU66H CPU65H CPU64H CPU63H CPU45H CPU44H CPU43H CPU42H 1O points 1O points 5 120 1 1 280 Program capacity 250K 120K steps Data memory Data memory 32K words Extended Data 32K 32K 32K words X 1 bank 32K 32K words X 1 bank Emory words X words X E0 00000 to words X E0 90000 to E0 32767 7 banks 3 banks EO 32767 3 banks EO 00000 EO 00000 EO 00000 t to to O E6_32767 E2_32767 E2_32767 70 CPU Unit Function Block Specifications Section
85. 999 Not Provided D32000 to D32767 Converting Function Block Definitions to Library Files Section 1 4 Function Block Holding The Function Block Holding Area words are allocated from H512 to H1535 Area Words H512 to These words are different to the standard Holding Area used for programs H1535 HOOO to H511 and are used only for the function block instance area inter nally allocated variable area These words cannot be specified as instruction operands They are displayed in red if input when a function block is not being created Although the words can be input when creating a function block an error will occur when the program is checked If this area is specified not to be retained in the Function Block Memory Allocation Dialog Box turn the power ON OFF or clear the area without retaining the values when starting opera tion 1 4 Converting Function Block Definitions to Library Files A function block definition created using the CX Programmer can be stored as a single file Known as a function block definition file with filename extension cxf These files can be reused in other projects PLCs Project Project Function block definition Function block definition Example CLOCK_PULSE Example CLOCK_PULSE a sna seeeh q 1Algorthm 1 Algorithm i N A l i tmb i Save Read f i IL ITIMX tim_a OFF_TIME 1 TM
86. AL LREAL Returns an angle in radians RAD_TO_DEG Convert Radians to Degrees e Function Converts an angle in radians to degrees e Application Return_value RAD_TO_DEG argument e Arguments and Return Values TUR REAL LREAL Specifies an angle in radians REAL LREAL Returns an angle in degrees 200 Index A addresses allocation areas 42 checking internal allocations 104 setting allocation areas 102 algorithm creating 87 applications precautions XX1 array settings 20 38 59 89 AT settings 19 38 89 restrictions 51 automatically generating function block definitions 92 C compiling 108 D data types 19 37 determining 56 debugging function blocks 113 differentiation restrictions 51 E errors function blocks 55 external variables 37 externals 19 F features 4 files function block definitions 112 library 8 project text files 8 function block definitions 13 checking for an instance 106 compiling 108 creating 82 saving to files 112 function blocks advantages 12 application guidelines 56 creating 23 debugging 113 defining 85 elements 31 errors 55 monitoring 113 operating specifications 49 outline 11 restrictions 51 reusing 24 setting parameters 99 specifications 6 7 30 structure 13 functions 4 function blocks 6 7 restrictions 5 G global symbol table 18 IEC 61131 3 4 7 input variables 32
87. ANSFER 070 instruction XFER W S D W Number of words S First source word D First destination word When amp 10 is specified in W variable a with data type WORD is specified in S and variable b with data type WORD is specified in D XFER amp 10 a b The XFER 070 instruction will transfer the data in the 10 words beginning from the automatically allocated address in variable a to the 10 words beginning with the automatically allocated address in variable b Therefore the CX Pro grammer will output a compile error Example XFER amp 10 a b variables a and b are WORD data types Internally allocated address Internally allocated address Variable a 1 word Example H700 Variable b 1 word less of the size of variable a This area will be overwritten so the CX Programmer will Example H7 10 words are transferred regard output a compile error Precautions for Instructions with Operands Specifying the First or Last of Multiple Section 2 6 Array Variables The result depends on the following conditions Size to Be Processed by Instruction Is Fixed lf the size to be processed by the instruction is a fixed operand and this size does not match the number of array elements the CX Programmer will output a compile error Example LINE TO COLUMN 064 instruction COLM S D N S Bit number D First destination word N Source word E g COLM a b 0 C lf an array for a WORD dat
88. BASED ON THE SOFTWARE OR ANY CONSEQUENCE THEREOF xvii Application Considerations SUITABILITY FOR USE THE USER SHALL NOT USE THE SOFTWARE FOR A PURPOSE THAT IS NOT DESCRIBED IN THE ATTACHED USER MANUAL xviii Disclaimers CHANGE IN SPECIFICATIONS The software specifications and accessories may be changed at any time based on improvements or for other reasons EXTENT OF SERVICE The license fee of the Software does not include service costs such as dispatching technical staff ERRORS AND OMISSIONS The information in this manual has been carefully checked and is believed to be accurate however no responsibility is assumed for clerical typographical or proofreading errors or omissions X X XX PRECAUTIONS This section provides general precautions for using the CX Programmer and the Programmable Logic Controller The information contained in this section is important for the safe and reliable application of the CX Programmer and Programmable Controller You must read this section and understand the information contained before attempting to set up or operate the CX Programmer and Programmable Controller 1 Intended Audience sereen kaa a a a a A A xxii 2 General Precautions erresen eea e a aE TEES xxii 3 Salc PrecationS aaa e a a a s E rig ss E E E xxii 4 Applicaton Precautions seri suia na ke a Ea Ee Ee EEEE ENEE NA xxiii XX Intended Audience 1 2 3 XXil Intended Audience Th
89. CX Programmer s ST Input Screen Display 140 5 4 ST Language Configuration n se s Aedes ee dade yo deawsaw ie eds 141 JAR SEMENE aea a E E a A TE A EE ADA 141 JA Vaablane aceda aaa ae e ae 142 5 4 3 Inputting Constants nessas anaana eeaeee eee 142 SAd OPEO Se oe ke eee A E E eke A AE Rieke AEA AEE 142 524 5 Standard F nctolSerere arepane aro Re Ewes der ees 143 5 4 6 OMRON Expansion Functions 0 000 eee eee eee 146 5 0 Statement Descn pons e isr 20tee cche ho e eia Wwe eid ae eeeads 148 S204 ASSP AD I aer r een tae t aces Pee Se eee oe 148 5 5 2 Control Statements 0 0 0 eens 148 5 6 ST language Program Example 0 eee eee eee 166 5 6 1 Using an ST Program in a Function Block 166 S REMON c coe ea bl behead Het odh ete eet eae Patdee oes 167 Jdel HRESIMCUONSS oo bot aa kk ou kate octet aa tara ar eE 167 5 7 2 Commonly Asked Questions 0 0 00 e eee eee 167 135 Structured Text Language Specifications Section 5 1 5 1 Structured Text Language Specifications 5 1 1 Overview of the Structured Text Language Structured text is a high level textual language that has selection and iteration structures and is similar to PASCAL ST Language Configuration E ST Language Configuration An ST language program is composed from statements There are two kinds of statements assignment and control e Assignment statement This statement uses a
90. Cat No W447 E1 09 CX Programmer Ver 9 WS02 CXPC1 V9 OPERATION MANUAL Function Blocks Structured Text CX Programmer Ver 9 WS02 CXPC1 V9 Operation Manual Function Blocks Structured Text Revised December 2009 Notice OMRON products are manufactured for use according to proper procedures by a qualified operator and only for the purposes described in this manual The following conventions are used to indicate and classify precautions in this manual Always heed the information provided with them Failure to heed precautions can result in injury to people or dam age to property DANGER Indicates an imminently hazardous situation which if not avoided will result in death or serious injury Additionally there may be severe property damage N WARNING Indicates a potentially hazardous situation which if not avoided could result in death or serious injury Additionally there may be severe property damage N Caution Indicates a potentially hazardous situation which if not avoided may result in minor or moderate injury or property damage OMRON Product References All OMRON products are capitalized in this manual The word Unit is also capitalized when it refers to an OMRON product regardless of whether or not it appears in the proper name of the product The abbreviation Ch which appears in some displays and on some OMRON products often means word and is abbreviated Wd in documentation
91. Com 128 128 64 64 64 64 64 64 ment files Kbytes Program 128 128 64 64 64 64 64 64 index files Kbytes Variable 128 128 128 64 128 64 64 64 tables Kbytes CJ1M CPU Units Specification Units with internal I O functions Units without internal I O functions Model CJ1M CPU23 CJ1M CPU22 CJ1M CPU21 CJ1M CPU13 CJ1M CPU12 CJ1M CPU11 V0 points 320 160 2 Program capacity OK 10K 5K 20K 10K 5 steps Number of Expan 1 max Expansion not supported 1 max Expansion not supported sion Racks Data memory 32K words Extended Data None Memory Pulse start times 46 us without acceleration 63 us without deceleration acceleration 70 us with acceleration decel deceleration eration 100 us with acceleration deceleration Number of sched 2 uled interrupts PWM outputs Maximum value of 1 024 subroutine number Maximum value of jump number in JMP instruction Internal inputs 10 points e 4 interrupt inputs pulse catch e 2 high speed counter inputs 50 kHz phase dif ference or 100 kHz single phase Internal outputs 6 points 6 points e 2 pulse outputs 100 kHz e 2 pulse out e 2 PWM outputs puts 100 kHz e 1 PWM out put 72 CPU Unit Function Block Specifications Section 2 8 Specification Units with internal I O functions Units without internal I O functions Function Maxi blocks mum number of definitions Maxi mum number of instances Com Total for ment all files Memory
92. Counters C3072 C4005 1024 FQM1 Flexible Motion Controllers FB Instance Applicable memory CP series CPU Units FB Instance Default value Applicable memory Area Start address End address Size EAS H512 H1407 CIO WR HR DM See note H1408 H1535 HR DM See note Counters cs072 c40 1024 DM area of CP1L L OPiLL D0000 to D9999 D10000 to D31999 Not Provided D32000 to D32767 43 Instance Specifications Section 2 3 Function Block Instance Area Types 44 Note Note The following settings are made in the function block instance area CS CJ series CPU Units Ver 3 0 or Later CP series PLCs and NSJ Controllers Non retained Areas tem SCSC C Cmtents Allocated variables Variables for which the retain property for power OFF and operation start is set as non retained See note 1 Applicable areas H Function block Special Holding Area I O CIO Area H Holding Area W Internal Relay Area D Data Memory Area see note 2 E Extended Data Memory Area See notes 2 and 3 Seting uni Allocated words H512 to H1407 default 1 Except when the data type is set to TIMER or COUNTER 2 Bit data can be accessed even if the DM or EM Area is specified for the non retained area or retained area 3 The same bank number cannot be specified as the current bank in the user program if the EM Area is specified for the non retained area or re tained are
93. EN If score gt setover underNG FALSE Turn OFF underNG OK FALSE Turn OFF OK overNG TRUE Turn ON overNG ELSIF score lt setunder THEN If score lt setover and score lt setunder overNG FALSE Turn ON overNG OK FALSE Turn OFF OK underNG TRUE Turn ON underNG ELSE If setover gt score gt setunder underNG FALSE Turn OFF underNG overNG FALSE Turn OFF overNG OK TRUE Turn OFF OkK END IF End of IF statement e ST programs can be uploaded and downloaded just like ordinary pro grams but ST program tasks cannot be uploaded and downloaded in task units e Function blocks ladder or ST language can be called in ST programs CX Programmer Specifications Section 4 2 e One dimensional array variables are supported for easier data handling in applications 4 2 CX Programmer Specifications This section describes the operating environment for CX Programmer ST pro grams ST tasks For details on the basic CX Programmer operating environ ment refer to the CX Programmer Operation Manual W446 e For details on the CX Programmer operating environment used with other programs function block or SFC refer to Part 1 Function Blocks in this manual or the CX Programmer Operation Manual SFC W469 4 2 1 PLC Models Compatible with ST Programs ST Tasks The following PLC models support ST tasks PLC model CPU Un
94. END_FOR e The initial_value final_value_equation and final_value_equation must be an integer data type INT DINT LINT UINT UDINT or ULINT e After processing is executed with the final value the iteration value is incremented to the final value 1 and iteration processing ends Example In the following structured text the value of a becomes TRUE 155 Statement Descriptions WHILE Statement 156 Section 5 5 FOR 2420 TO 100 DO array i 0 END FOR IF i 101 THEN a TRUE ELSE a FALSE END IF e Do not use a FOR statement in which an iteration variable is changed directly Doing so may result in unexpected operations Example FOR i 0 TO 100 BY 1 DO array i 0 1 1 5 END FOR e Statements that can be used in the expression are assignment state ments IF CASE FOR WHILE or REPEAT e Multiple statements can be executed in the expression Be sure to use a semicolon delimiter between multiple statements in an expression e BY increment_equation can be omitted When omitted BY is taken as 1 e Variables with integer data types INT DINT LINT UINT UDINT or ULINT or equations that return integer values can be specified in the initial_value final_value_equation and increment_equation Example 1 The iteration is performed when the iteration variable n O to 50 in increments of 5 and the array variable SP n is substituted with 100 FOR n 0 TO 50 BY 5 DO SP n 100 END
95. ER The variable will not be registered and the value number will be pasted directly into the operand as a con stant UINT BCD WORD UDINT BCD DWORD ULINT BCD LWORD Symbol data types CHANNEL NUMBER UINT BCD UDINT BCD or ULINT BCD however cannot be copied from the symbol table not the program and then pasted into the variable table in the function block definition 91 Procedures Section 3 2 Note Symbols with automatically generated symbol names AutoGen_ Address cannot be copied from a global symbol table and pasted into the function block definition symbol table Generating Function Block Definitions from Existing Ladder Programming One or more program circuits in a user program can be converted to the lad der programming in a function block definition Note This function is designed to help you create function block definitions based on existing ladder programming It does not automatically generate finish def initions After generating a function block definition with this function always check the warning messages in the FB Variable Allocation Dialog Box and Output Window and check the program that was generated and be sure to make any required changes 1 2 3 1 Right click one or more program circuits in the user program and select Function Block ladder generation from the pop up menu Program Name NewProgram1 Section Name Section1 Online Edit gt Go To gt Find Bit Address
96. FB1 Program Instance 1 Algorithm __ Instance FB1_1 of function block definition FB1 oe Insert in Standard program C Bre program unit __ Memory with variable Input a b for FB1_1_ names a b c data Output data E etc op t Automatic J Memory _ Pails allocation W for FB1_2 _ Table defining usage Insert in fand properties of _ program variables a b c etc Different I O data can be processed with the same function B1_2 of function block definition FB1 PA data 7 Output data O Output data Instances are managed by names More than one instance with the same name can also be inserted in the program If two or more instances have the same name they will use the same internal variables Instances with different names will have different internal variables For example consider multiple function blocks that use a timer as an internal variable In this case all instances will have to be given different names If more than one instance uses the same name the same timer would be used in multiple locations resulting in duplicated use of the timer lf however internal variables are not used or they are used only temporarily and initialized the next time an instance is executed the same instance name can be used to save memory instance_A b TIMER_FB Function Block Definition l TIMER_FB Variable Definitions Internal variable WORK_NU
97. FC Ends the SFC action program that is being executed and executes the next action program ST used in a function block Returns from the called program to the point in the calling program where the call occurred Calls a function block definition When used in a function block Variable name with FUNCTION BLOCK data type called function block definition s input variable name Calling function block definition s Function block instance call variable name or constant called function block definition s output vari able name or constant gt calling func tion block definition s output variable name 141 ST Language Configuration Section 5 4 5 4 2 Variables For details on variable specifications and setting methods refer to the CX Programmer Operation Manual W469 5 4 3 Inputting Constants Numerical values can be expressed in decimal hexadecimal octal or binary as shown in the following examples Notation Method Example for the decimal value 12 Decimal Numerical value only 12 Hexadecimal 16 followed by numerical value 16 C Octal 8 followed by numerical value 8 14 Binary 2 followed by numerical value 2 1100 Text string Place in single quotation marks Hello world Note Negative hexadecimal octal and binary numbers are expressed as 2 s com plements The valid range of INT data is 32 768 to 32 767 in decimal but 0000 to FFFF in hexadecimal so the 2 s
98. FOR Example 2 The total value of elements DATA 1 to DATA 50 of array vari able DATA n is calculated and substituted for the variable SUM FOR n 0 TO 50 BY 1 DO SUM SUM DATA n END FOR Example 3 The maximum and minimum values from elements DATA 1 to DATA 50 of array variable DATA n are detected The maximum value is substituted for variable MAX and the minimum value is substituted for vari able MIN The value for DATA n is between O and 1000 MAX 0 MIN 1000 FOR n 1 TO 50 BY 1 DO IF DATA n gt MAX THEN MAX DATA n END IF IF DATA n lt MIN THEN MIN DATA n END IF END FOR E Summary This statement is used to execute a specified expression repeatedly for as long as a specified condition is true Statement Descriptions Section 5 5 E Reserved Words WHILE DO END_WHILE E Statement Syntax WHILE lt condition gt DO lt expression gt END WHILE E Processing Flow Chart Iteration Expression End E Usage Use the WHILE statement when the number of iterations has not been deter mined beforehand depends on the condition being met to repeat specified processing for the duration that the condition is met This statement can be used to execute processing while the condition equation is true only pretest loop E Description Before the expression is executed the condition is evaluated If the condition is true the expression is executed Afterwards the condition is eva
99. Function Block Library Files cxf Cancel Use the following procedure to read a function block library file cxf into a project 1 Select the function block definition item under the PLC directory in the Project Workspace right click and select Insert Function Block From File from the pop up menu or select File Function Block Load Func tion Block from File 2 The following dialog box will be displayed Select a function block library file cxf and click the Open Button Procedures Section 3 2 Select CX Programmer Functio E xj Look in y FEL a c BE Jormroniib a Operation_module cxf a Average_calculation cxf 38 Stsample cxf 98 FB_STO1 cxf Files of type Function Block Library Files cxf Cancel 3 A function block called FunctionBlock1 will be automatically inserted after the Function Blocks icon This icon contains the definition of the function block 4 Double click the FunctionBlock1 Icon The variable table and algorithm will be display 3 2 17 Downloading Uploading Programs to the Actual CPU Unit After a program containing function blocks has been created it can be down loaded from the CX Programmer to an actual CPU Unit that it is connected to online Programs can also be uploaded from the actual CPU Unit It is also possible to check if the programs on the CX Programmer personal computer and in the actual CPU Unit are the same When the pro
100. ID Message 3 2 BCD is stored in the Result variable CONCAT Concatenate Strings e Function Joins the specified text strings Up to 31 text strings can be specified e Application Return_value CONCAT Source_string_1 Source_string_2 e Arguments and Return Values Data type Source_string_1 STRING Specifies a text string to be joined Source_string_2 STRING Specifies a text string to be joined STRING Returns the joined text strings 188 Function Descriptions Appendix C e Example Message 2 Message 3 Variables message A B C g DLE g F G H STRING Message1 STRING Message2 STRING Message3 STRING Result Result CONCAT Message1 Message2 Message3 ABCDEFGH is stored in the Result variable weet Oa INSERT Insert Characters e Function Inserts the specified characters into a text string e Application Return_value INSERT Source_string Insert_string Position e Arguments and Return Values Variable name Datatype C escription STRING Specifies the text string into which to insert char acters Insert_string STRING Specifies the text string to be inserted Position INT UINT Specifies the position at which to insert charac ters The first character is position 1 e g posi tion 1 is A in message 1 in the following illustration Return_value STRING Returns the text string with the characters inserted e Example Var
101. IF must be used together with END_IF e Condition__ contains the true or false result of the equation e g IF A gt 10 A boolean BOOL data type variable only can also be specified as the condition rather than an equation For boolean conditions the result is true when the variable value is 1 ON and false when it is 0 OFF e Statements that can be used in expression_L are assignment state ments IF CASE FOR WHILE or REPEAT 151 Statement Descriptions Section 5 5 e Multiple statements can be executed in expression_ _ Be sure to use a semicolon delimiter between multiple statements in an expression e The ELSE statement can be omitted When ELSE is omitted no opera tion is executed if the result of any condition equation is false E Examples Example 1 If variable A gt 0 is true variable X will be substituted with numerical value 10 If A gt O is false but variable B 1 variable X will be substituted with numerical value 1 If A gt O is false but variable B 2 variable X will be substituted with numerical value 2 lf either of these conditions is met variable X will be substituted with numeri cal value 0 IF A gt 0 THEN X 10 ELSIF B 1 THEN X 1 ELSIF B 2 THEN X 2 ELSE X 0 END IF CASE Statement E Summary This statement executes an expression containing a selected integer that matches the value from an integer equation If the selected integer value is not the same either no expression or a s
102. J12 TSOL1 G5D M3D Used for the NSJ5 TQOLI M3D NSJ5 SQOLI M3D and NSJ8 TVOL M3D FQM1 CM FQM1 CM002 FQM1 MMA_ FQM1 MMA22 FQM1 MMP_ FQM1 MMP22 3 Press the Settings Button and select the CPU Type For details on other settings refer to the CX Programmer Operation Manual W446 3 2 2 Creating a New Function Block Definition 1 2 3 1 When a project is created a Function Blocks icon will appear in the project workspace as shown below Untitled CX Programmer NewPLC1 NewProgram1 Section1 Diagram _ File Edit view Insert PLC Program Simulation Tools Window Help JOSE R S6R FBG CC MEB Cw ase ja a Qa Sit it Ribwuew o e E TRA AA DS APB e eee laws 5d fo NewProject NewPLC1 CJ1G H Offline Symbols hi 10 Table and Unit Setup PSEC SLE E Li Settings j A et Memory 7 A 59 Programs EE A 3 NewProgram1 00 Symbols p Section Function Blocks will appear under the PLC 2 Function block definitions are created by inserting function block defini tions after the Function Blocks icon Program Name NevyProgram1 l Section Name Section1 Creating Function Block Function blocks can be defined by the user using either ladder programming Definitions or structured text 82 Procedures Section 3 2 Creating Inserting Function Block Definitions with Ladders 1 Select Function Blocks in the project workspace right click and select Insert Function Blocks Ladde
103. Kbytes Unit ver 4 0 or later Inside Function com block pro ment gram memory memory ver 3 0 Kbytes or later Gom ment files Kbytes Program index files Kbytes Variable 64 tables Kbytes CP1H CPU Units XA models CP1H X40DR A CP1H XA40DR A CP1H Y20DT D CP1H X40DT D CP1H XA40DT D CP1H X40DT1 D CP1H XA40DT1 D Max number of I O points 320 points 40 built in points 40 points Expansion 300 points 20 built in Rack x 7 Racks points 40 points Expan sion Rack x 7 Racks Program capacity steps 20K Data memory 32K words Number of connectable Expan 7 Units CP series Expansion Units and Expansion I O Units sion Units and Expansion I O Units Function blocks Maximum num 128 ber of definitions Maximum num 256 ber of instances 56 Inside comment Function block 2 memory program mem ory Kbytes Comment files 64 Kbytes 4 Program index 6 files Kbytes Variable tables 64 Kbytes 73 CPU Unit Function Block Specifications Section 2 8 CP1L CPU Units 0 T CP1L CP1L CP1L CP1L CP1L CP1L M60DLI L M40DLI LI MB80DLI LI L20DLI LI L14DLI L L10DLI L Max number of I O points 180 points 160 points 150 points 60 points 54 points 10 points 60 built in 40 built in 30 built in 20 built in 14 built in points 40 points 40 points 40 points 40 points 40 points points points points points Expansion Expansion Expansion Ex
104. L 15 01 z3 Symbols margin REAL D6 QT 10 Table and Unit Setup red_lamp BOOL 15 00 thickness REAL D1 po m e thickness2 REAL D2 I Programs thickness3 REAL D3 ar Work_piece_Measurement 00 Sa Symbols F average thickness1 thickness2 thickness3 3 0 aa Default_Setting p Measurement END E RR Average_Value_Calculation 01 IF flag 3 THEN Symbols IF average lt criterion margin THEN 3 Result_Display 02 __red_lamp TRUE symbols ELSIF average gt criterion margin THEN me Y red_lamp TRUE LED_Display ELSE END green_lamp TRUE F Function Blocks END_IF END_IF Project x Ladder Section Name Measurement Ladder Section Name END PLC Program Name NewPLC1 Average_Value_Calculation WARNING Program Name exceeds 24 characters may be truncated when downloaded to PLC PLC Program Name NewPLC1 Result_Display Ladder Section Name LED_Display Ladder Section Name END Results of program check displayed NewPLC1 0 errors 1 warning The programs have been checked with the program check option set to Unit Yer 4 0 6 1 6 Downloading Uploading Programs to the Actual CPU Unit After a program containing the ST programs has been created the CX Pro grammer can be connected online to the actual PLC and the program down loaded to the actual PLC Conversely the program can be uploaded from an actual PLC Program tasks cannot be downloaded or upload
105. La oekG ete esc see ens oor ase aS 11 1 2 2 Advantages of Function Blocks 0 00 12 1 2 3 Function Block S UCIUIC 03 sen oy bh ae eh eke Si ee ea ws 13 l3 VatlaDies acdc eudus oss estat aca toe ee eee cia tea eta ee 18 bee OCU CHOM reca ee creas eee eee he eed ex 18 1 3 2 Variable Usage and Properties 0 cee eee eee eee 19 12333 Warlable Properuies an 0c ance Sho an a Geet eo a he wee ee 19 1 3 4 Variable Properties and Variable Usage 20 1 3 5 Internal Allocation of Variable Addresses 21 1 4 Converting Function Block Definitions to Library Files 23 les Usare Procedures 2 445 264 G60 2250 e aa ea a aa aeaa 23 1 5 1 Creating Function Blocks and Executing Instances 23 1 5 2 Reusing Function Blocks 0 0 cece eee 24 1 6 Version Upgrade Information 0 0 c ccc eee eee 25 Introducing the Function Blocks Section 1 1 1 1 1 1 1 Introducing the Function Blocks Overview and Features The CX Programmer Ver 5 0 and later versions is a Programming Device that can use standard IEC 61131 3 function blocks The CX Programmer function block function is supported for CJ2H CPU Units CP1H CPU Units NSJ series NSJ Controllers and FQM1 Flexible Motion Controllers as well as CS CJ series CPU Units with unit version 3 0 or later and has the following features User defined processes can be converted to block format by
106. M Use same internal variables instance_A N 7 J instance_B E J Multiple instances can be created from a single function block definition Up to either 256 or 2 048 instances can be created for a single CPU Unit depending on the CPU Unit model The allowed number of instances is not related to the number of function block definitions and the number of tasks in which the instances are inserted i gt Use different internal variables Function Blocks Parameters Section 1 2 Each time an instance is created set the real I O memory addresses or con stants for input variables output variables and input output variables used to pass input data values to instances and obtain output data values from instances These addresses and constants are called parameters Instance of Function Block Definition A b Output 2 00 Input 3 00 Set the constant or Set the constants or output destination input source addresses address to which to pass from which to pass data data Using Input Variables and Output Variables With input variables and output variables it is not the input source address itself but the contents at the input address in the form and size specified by the variable data type that is passed to the function block In a similar fashion it is not the output destination address itself but the contents for the output address in the form and size specified by the variable data t
107. M Hold Bit Status at Startup Ecin Setup selected Setup not selected Variables not Star of operation Not retained set to Retain Not retained Not retained Note The IOM Hold Bit A50012 is supported for compatibility with previous mod els To hold the values of variables in function blocks however use the Retain Option and not the IOM Hold Bit Initial Value An initial value can be set for an internal variable that is not being retained i e when the Retain Option not selected An initial value cannot be set for an internal variable if the Retain Option is selected Internal variables that are not being retained will be initialized to O The initial value will not be written to the internal variable if the IOM Hold Bit A50012 is ON Auxiliary Area control bit Initial value IOM Hold Bit A50012 ON The initial value will not be set OFF The initial value will be set 36 Function Block Specifications Section 2 1 E External Variables External variables are either system defined variables that have been regis tered in CX Programmer before hand or variables that externally reference user defined variables in the global symbol table e For details on system defined variables refer to Appendix A System defined external variables supported in function blocks e To externally reference user defined variables in the global symbol table the variables of the same name and data type must be registered as an e
108. ND FOR 154 Statement Descriptions Section 5 5 E Processing Flow Chart Iteration variable Initial Iteration Iteration variable gt Final value True False Expression Iteration variable Increment value End E Usage Use the FOR statement when the number of iterations has been determined beforehand FOR is particularly useful when switching the number of ele ments in an array variable according to the value of a specified iteration vari able E Description When the iteration_variable is the initial_value the expression is executed After execution the value obtained from the increment_equation is added to the iteration_variable and if the iteration_variable lt final_value_equation see note 1 the expression is executed After execution the value obtained from the increment_equation is added to the iteration_variable and if the iteration_variable lt final_value_equation value see note 1 the expression is executed This process is repeated If the iteration_variable final_value_equation see note 2 the processing ends Note 1 If the value from the increment_equation is negative the condition is iteration_variable gt final_value_equation value 2 If the value from the increment_equation is negative the condition is iteration_variable lt final_value_equation E Precautions e A negative value can be specified in the increment_equation e FOR must be used in combination with
109. NewPLC1 NewProgra REAL NewPLC1 CNewPragra D2 REAL NewPLCl SLT one SET Right click in the Watch Window and select Paste KIKI LA Lil average 0 0000000 Float Chickness 0 0000000 Float thicknes IF flag 3 THEN flag 0 Select the variable in the IF average criterion margin THEN average 0 0200000 Float red_lamp TRUE red_lampsrt ST variable monitor ELSIF average gt criterion margin THEN avergefe 0 0000000 Float window right click red_lamp TRUE e4_ lamp 0 ELSE and select Copy green_lamp TRUE END_IF END_IF green_lamp 0 Ls gt FB Usage Yalue VYalue B Comment 0 000 0 000 Measur 0 000 0 000 Measur 0 000 0 000 Measur For Help press F1 ST Program Simulation Function NewPLC1 Net 0 Node 0 Monitor Mode 0 6ms SYNC The ST program can be connected to a simulator and monitored although the step execution and breakpoint functions cannot be used 6 1 9 Online Editing of ST Programs Starting Online Editing 1 2 3 176 ST programs can be edited even when the PLC CPU Unit is operating This allows ST programs to be debugged or changed in systems that cannot be shut down such as systems that operate 24 hours day ST programs can be edited online when the PLC is in an operating mode other than RUN mode This fun
110. Note Steps 2 and 3 can be done in the opposite order m Step Execution Step Run Executes the program in step instruction increments When the instance is stopped this function can move to the first step instruction of the ladder or ST program in that instance The program in the instance can be executed with the Step Run or Continu ous Step Run method see note Procedures Section 3 2 PLCC ELLLE EEE LEE L Ly ULI ELID EEE E ELI D EE Note Set the duration of the step execution for Continuous Step Run operation by selecting the CX Programmer s Tools Options command and setting the Continuous Step Interval on the PLCs Tab Page Step In Use the following procedure to begin step execution of a ladder ST program within an instance called Step Run operation 1 2 3 1 Pause execution of the instance See note 2 Click the Step In Icon or select Tools Simulation Mode Step In Example Step In from Instance to Internal Ladder Program Stopped here Click the Step In Icon to start Step In execution StageA_BoxSelect VWorkMoveControl_l BOOL EN 0 E s ees a B00 o Pa Name DYK R PxM1 Section Name Section1 Moves to here DVD_ThickSelectControl BOOL BOOL 4 00 RightDirlnput ActuatorRight On BOOL BOOL 4 01 Lececiccesiececeeetitis LeftDirinput ActuatorLetto A 0 00 Bo n 2 E 2StageA_DVD BOOL CLINT D10 DRAA LSright LS_ONnumber 1 00 __ B
111. O status of a function block instance s lad The I O status of a function block instance s ladder diagram can be der diagram could not be monitored while moni monitored while monitoring the program online toring the program online To monitor the I O status either double click the function block instance It was only possible to check the program in the or right click the instance and select Monitor FB Ladder Instance function block definition from the pop up menu At this point it will be possible to monitor the status of I O bits and the content of words change PVs force set reset bits and monitor differentiation ON OFF transitions of bits Note Online editing is not supported and timer counter SVs cannot be changed Registering and Monitoring Function Block Instance Variables in a Watch Window Previous version Ver 5 0 New version Ver 6 0 To register a function block instance s variable in Multiple variables in a function block instance can be easily registered a Watch Window it was necessary to display the together in the Watch Window The FB variables registration Dialog Box Watch Window double click the window and can be displayed with any of the following methods and the variables select the desired variable from a pull down list can be registered together in that Dialog Box e Right click the function block instance and select Register in Watch Window from the pop up menu e Select the desired
112. OOL 2 00 OL CylinderRightO A 0 n 0 BOOL ENS 1 01 BOOL 2 01 CylinderLeftO 0 n 0 BOOL Reset DO 0 0000000 D2 0 0000000 D4 0 0000000 2 Stages _BoxSelect 2 WorkMoveControl_LSONcount Example Step In from ST Program to Internal Ladder Program With an ST program an arrow is displayed to the left Click the Step In Icon to Stopped here _ of the stopped position start Step In execution Reset TRUE THEN PrevCycleLS FALSE END_IF WWorkMove RightDirlnput LeftDirlnput LSright LSleft ActuatorRightOn ActuatorLe IF PrevCycleLS FALSE and LSright TRUE THEN LS_ONnumber LS_ONnumber 1 END_IF PrevCycleLS LSright eceecerecedeees eee gy PosDirInput LSneg LSpos ActuatorPosOut 2 Actuator output for pos 2 Input for positi Limit switch fo Limit switch fo EEE Actuator outp 1 NegDirlnput LSpos LSneg ActuatorNegOut 5 Actuator output for neg Input for negat Limit switch fo Limit switch fo ActuatorNegOut RightDirlnput 0 LeftDirlnput 0 LSright 0 LSleft 0 ActuatorF PrevCycleLS 0 LSright 0 LS_ONnumber 0 L LS_ONnumber 0 L Actuator outp PrevCycleLS 0 LSright 0 Note When the program is being executed at a point outside of the function block instance the processing is the same as normal Step Run operation Step Out Use the following procedure to pause step execution of a ladder
113. P_OF and P_UF 5 7 2 Commonly Asked Questions Q How is a hexadecimal value expressed A Add 16 before the value e g 16 123F The prefixes 8 and 2 can also be added to express octal numbers and binary numbers respectively Numbers without these prefixes will be inter preted as decimal numbers Q How many times can FOR be used A In the following example the contents of the FOR statement is executed 101 times The loop processing ends when the value of i is equal to 101 167 Restrictions Section 5 7 FOR i 0 TO 100 BY 1 DO as arl END FOR Q What occurs when the array subscript is exceeded A For the array variable INT 10 with 10 elements an error will not be detected for the following type of statement Operation will be unstable when this statement is executed Icss INT i 10 Q Are the variables in the structured text editor automatically registered in the variable tables A No Register the variables in the variable table before using them Q Can ladder programming instructions be called directly A No 168 SECTION 6 Creating ST Programs This section explains how to create ST programs Gal Procedures ic d 2 seit sete boys Se aoe Aled we hve eA Sh ee Si ea 170 G lel Creatine a Projecl wacarter ticweaeeue thee t ee howto de cease 170 Gsle2 Creating a New ST Prosram o3 veg tes4 a Aa 170 6 1 3 Allocating the ST Program toa Task 000004 171 6 l 4 C
114. Parameter Specilicauionss s c5 24 0d4 bee ee ieee Saheb ees 47 2 3 3 Operating Specifications sa sessa eie wianie Can eae wie ws Boe 49 2 4 Programming ResticHons serres oe iad e Rade AEE oa 51 2 4 1 Ladder Programming Restrictions 00000 000 S51 2 4 2 ST Programming Restrictions 0 00 53 2 4 3 Programming Restrictions 0 eee eee eee 54 2 5 Function Block Applications Guidelines 0 0 0 00002 eae 56 2 5 1 Deciding on Variable Data Types 0000055 56 2 5 2 Determining Variable Types Inputs Outputs In Out Externals and Internals 57 2 5 3 AT Settings for Internal Variables 00005 59 2 5 4 Array Settings for Input Output Variables and Internal Variables 59 2 5 5 Specifying Addresses Allocated to Special I O Units 61 2526 Using Index Registers sy ndow yeaa e dee we eee edb ewe ee 62 2 6 Precautions for Instructions with Operands Specifying the First Or Lasto MIU ple WordS rs esserne dare oat as sh ED wie Oh Ook wees 65 2 7 Instruction Support and Operand Restrictions 000040 68 2 8 CPU Unit Function Block Specifications 00 0 eee 70 2505 SPECHICAUONS saraa bae Mire dee a ab acne been ieee er dee eee 70 2 8 2 Operation of Timer Instructions 0 0 0000 e eae T3 2 9 Number of Function Block Program Steps and Instance Execution Time 76 2 9 1 Number of Function Block Program
115. RD variable to a value between O and 65 535 between 0000 and FFFF hex If an initial value is not set the variable will be set to 0 For example a bool ean variable would be 0 FALSE and a WORD variable would be 0000 hex Select the Retain Option if you want a variable s data to be retained when the PLC is turned ON again and when the PLC starts operating e Setting Procedure Select the Retain Option When a STRING variable is used the size required to store the text string can be set to between 1 and 255 characters 1 3 4 Variable Properties and Variable Usage 20 The following table shows which properties must be set can be set and can not be set based on the variable usage Property Variable usage Must be set Mustbeset Mustbeset Must be set Data Type Must be set Must be set Must be set AT specified Can be set Cannot be set Cannot be set Cannot be set address Array specification Mustbeset Cannot be set Cannot be set Must be set Initial Value Can be set Cannot be set Can be set Cannot be set See note 1 Retained Can be set Cannot be set Can be set Cannot be set See note 1 Size Can be set Cannot be set Cannot be set Cannot be set See note 2 1 The value of the input parameter will be given 2 Valid only for STRING variables Variables Section 1 3 1 3 5 Internal Allocation of Variable Addresses Setting Internal Allocation Areas for Va
116. RN statement depends on the type of program in which ST is used e ST program Forcibly ends the ST task that is being executed and executes the next task e ST used in SFC Forcibly ends the action program that is being executed and executes the next action program or transition program e ST used in a function block Forcibly ends the ST language function block containing the RETURN statement returns to the place in the calling function block instance where the call occurred and executes the next instruction E Reserved Words RETURN E Statement Syntax RETURN E Usage Use the RETURN statement to forcibly end an SFC program and function block that is executing an ST task Function Block Call Statement E Summary This statement calls a function block definition E Reserved Words None E Statement Syntax Enter the arguments specified variable values that are passed to the called function block s input variables and return value specified variable that receives the function block s output variable value in parentheses after the instance name see note The two methods entry method 1 and entry method 2 that can be used to enter these parameters are described in the fol lowing paragraphs Note The data type is any of the function block s internal variable names when ST is used in the function block s instance or global variable names when ST is used in an ST task or SFC action program E Entry Method 1
117. RO to IR15 are used within function blocks using the same Index Register within other function blocks or in the program outside of function blocks will create competition between the two in stances and the program will not execute properly Therefore when using Index Registers IRO to IR15 always save the value of the Index Register at the point when the function block starts or before the Index Register is used and when the function block is completed or after the Index Register has been used incorporate processing in the program to return the Index Register to the saved value Example Starting function block or before using Index Register 1 Save the value of IR e g A rf LValue A_ Value A L C o o Within function block 2 Use IR Value B At start of function block or before Index Register is used 3 Return IR to saved value e g A pValue A Value A L 2 Always set the value before using Index Registers Operation will not be stable if Index Registers are used without the values being set 63 Function Block Applications Guidelines Section 2 5 Application Examples The following examples are for using Index Registers IRO to IR15 within func tion blocks Saving the Index Register Value before Using Index Register Store IRO temporarily in backup buffer P_On Using Index Registers Long Move First source word First destination word 1 Setting the value in the Index Register
118. SMAC One NSuJ Series NSJL_I LILILIL1 B G5D NSJLI LILILIL B M38D Programmable Controllers Instructions Reference Manual SYSMAC CS Series CS1G H CPULILI EV1 CS1G H CPULILJH Programmable Controllers Operation Manual SYSMAC CJ Series CJ1G CPULILJ CU1G H CPULILIH CJ1H CPULILIH R CJ1G CPULILIP CJ1M CPULIL Programmable Controllers Operation Manual Xii W472 W473 W474 W339 W393 Provides an outline of and describes the design installation maintenance and other basic operations for the CJ series CJ2 CPU Units The following information is included Overview and features System configuration Installation and wiring Troubleshooting Use this manual together with the W473 Describes programming and other methods to use the func tions of the CJ2 CPU Units The following information is included CPU Unit operation Internal memory areas Programming Tasks CPU Unit built in functions Use this manual together with the W472 Describes the ladder diagram programming instructions sup ported by CS CJ series or NSJ series PLCs When programming use this manual together with the Oper ation Manual or Hardware User s Manual CS1 W339 CJ1 W393 or CJ2 W472 and Programming Manual or Software User s Manual CS1 CJ1 W394 or CJ2 W473 Provides an outline of and describes the design installation maintenance and other basic operations for the CS series PLCs The following in
119. ST Program 1 2 3 1 Register variables in the variable table 2 Create the ladder program or ST program m Registering Variables as Necessary while Inputting the Ladder Program or ST Program 1 2 3 1 Create the ladder program or ST program 2 Register a variable in the variable table whenever required Create an Instance from Refer to 3 2 4 Creating Instances from Function Block Definitions for details the Function Block Definition m Inserting Instances in the Ladder Section Window and then Inputting the Instance Name L23 1 Place the cursor at the location at which to create an instance i e a copy of the function block and press the F Key 2 Input the name of the instance 3 Select the function block definition to be copied m Registering Instance Names in the Global Symbol Table and then Selecting the Instance Name when Inserting 1 2 3 1 Select Function Block as the data type for the variable in the global symbol table 2 Press the F Key in the Ladder Section Window 80 Procedural Flow Allocate External I O to the Function Block 1 2 3 Set the Function Block Memory Allocations Instance Areas 1 2 3 Section 3 1 3 Select the name of the instance that was registered from the pull down menu on the FB Instance Field Refer to 3 2 5 Setting Function Block Parameters Using the Enter Key for details 1 Place the cursor at the position of the input variable or output variable and pres
120. Steps 76 2 9 2 Function Block Instance Execution Time FI 29 Function Block Specifications Section 2 1 2 1 Function Block Specifications 2 1 1 Function Block Specifications o ltem O Description O Number of function CJ2H Units block definitions e CJ2H CPU6LK EIP 2 048 max per CPU Unit CS1 H CJ1 H CPU Units e Suffix CPU44H 45H 64H 65H 66H 67H 64H R 65H R 66H R 67H R 1 024 max per CPU Unit e Suffix CPU42H 43H 63H 128 max per CPU Unit CJ1M CPU Units e CJ1M CPU11 12 13 21 22 23 128 max per CPU Unit CP1H CPU Units e CP1H XA X Y 128 max per CPU Unit CP1L CPU Units e CP1L M L 128 max per CPU Unit NSJ Controllers e All models 1 024 max per Controller FQM1 Flexible Motion Controllers e FQM1 CM002 MMA22 MMP 22 128 max per Controller Number of instances CJ2H Units e CJU2H CPU6L EIP 2 048 max per CPU Unit CS1 H CJ1 H CPU Units e Suffix CPU44H 45H 64H 65H 66H 67H 64H R 65H R 66H R 67H R 2 048 max per CPU Unit e Suffix CPU42H 43H 63H 256 max per CPU Unit CJ1M CPU Units e CJ1M CPU11 12 13 21 22 23 256 max per CPU Unit CP1H CPU Units e CP1H XA X Y 256 max per CPU Unit CP1L CPU Units e CP1L M L 256 max per CPU Unit NSJ Controllers e All models 2 048 max per Controller FQM1 Flexible Motion Controllers e FQM1 CM002 MMA22 MMP22 256 max per Controller Number of instance e CX Programmer Ver 5 0 nesting levels Nesting
121. T and UINT e DINT and DINT e LINT and ULINT Note Use signed integers if the numbers being used will fit in the range Word Data Types Use the following data types when handling groups of data non numeric 1 2 or 4 word Data data in 1 2 or 4 word units e WORD e DWORD e LWORD Text String Data Use the following data type for text string data e STRING 56 Function Block Applications Guidelines Section 2 5 2 5 2 Determining Variable Types Inputs Outputs In Out Externals and Internals Using Input Variable to To paste a function block into the program and then change the value not the Change Passed Values address itself to be passed to the function block for each instance use an input variable Program Instance for function block definition A The value itself is Changing the pass value to an input variable The following two restrictions apply e An address can be set in an input parameter but an address itself cannot be passed to an input variable even if an address is set in the input parameter the value for the size of the input variable data type is passed to the function block Therefore when the first or last of multiple words is specified in the instruction operand within the function block an input vari able cannot be used for the operand Specify either to use internal vari ables with AT settings specify the first or last element in an input output array variable set the input param
122. U Units there is no restriction on the number of steps that can be added to or deleted from a function block definition during one online editing operation e Online editing is not possible for ST programs that exceed 4 Ksteps except for CJ2 series CPU Units e A maximum of 0 5 Ksteps can be added to or deleted from an ST program during one online editing operation except for CU2 series CPU Units e After performing online editing do not turn OFF the power supply to the PLC until the CPU Unit has finished backing up data to the built in flash memory i e until the BKUP indicator goes OFF If the power supply is turned OFF before the data is backed up the data will not be backed up and the program will return to the status it had before online editing was performed 179 Procedures Section 6 1 180 Appendix A System defined external variables supported in function blocks Classification External variable in Data type Address CX Programmer Conditions Flags Greater Than or Equals GE Flag P PGE ul BOOL CF00 Not Equals NE Flag Less Than or Equals LE Flag Instruction Execution Error ER Flag Greater Tran GT Fa Glock Pulses BOOL OMRON FB Library words see note HR Area specification DM DM Area specification DM Area specification EMO to C Area specification P_EMO to P_ PM ae WORD A461 to A473 Note These words are external variables for the OMRON FB Library Do not use these words for creating
123. Use this method to enter both the argument specification called function block definition s variable name and return value specification ADES a ekicak eases D gt E 160 Statement Descriptions Section 5 5 A Instance name B Called function block definition s input variable name C One of the following values depending on the ST program being used e Calling function block s input variable or a constant when ST is being used in the function block s instance e Global variable or local variable name when ST is being used in an ST task or SFC action program D Called function block definition s output variable name or constant E One of the following values depending on the ST program being used e Calling function block s output variable or constant when ST is being used in the function block s instance e Global variable or local variable name when ST is being used in an ST task or SFC action program Note Delimit all of the B C type assignments with commas Delimit only the required number of D gt E type assignments with commas E Entry Method 2 Use this method to enter just the return value specification and omit the argu ment specification called function block definition s variable name PCE lt lt bint Shs E A Instance name B Omitted called function block definition s input variable name C One of the following values depending on the ST program being used e Calling
124. X tim_a OFF_TIME N i N tma tima i TIMX tim_b ON_TIME 1 TIMX tim_b ON_TIME N J i i TA i L ENO j evxo fm ASO Y E YC 2 Variable Definitions 2 Variable Definitions 9 Nam Typ g Typ Interna I tima TIMER Internal l tma TIMER E nemal timb TIMER Internal tim TIMER Input ON_TIME Input ON_TIME y Input OFF TIME Input OFF_TIME Function block definition file cxf 1 5 Usage Procedures Once a function block definition has been created and an instance of the algo rithm has been created the instance is used by calling it when it is time to execute it Also the function block definition that was created can be saved in a file so that it can be reused in other projects PLCs 1 5 1 Creating Function Blocks and Executing Instances The following procedure outlines the steps required to create and execute a function block 1 2 3 1 First create the function block definition including the algorithm and vari able definitions in ladder program or ST language Alternatively insert a function block library file that has been prepared in advance Note a Create the algorithm entirely with variable names b When entering the algorithm in ladder programming language project files created with versions of CX Programmer earlier than Ver 5 0 can be reused by reading the project file into CX Pro grammer Ver 5 0 or higher and copying and pasting us
125. Y2 207 ELSE At 0 gt Ys 03 END IF Example 3 If the boolean BOOL data type variable A 1 ON variable X will be substituted with numerical value 10 If variable A 0 OFF variable X will be substituted with numerical value O IF A THEN X 10 ELSE X 0 END IF E Summary This statement is used to execute an expression when a specified condition is met If the first condition is not met but another condition is met a corre sponding expression is executed If none of the conditions is met a different expression is executed E Reserved Words IF THEN ELSIF ELSE END_IF Statement Descriptions Section 5 5 Note ELSE can be omitted Statement Syntax IF lt condition_1 gt THEN lt expression_1 gt ELSIF lt condition_2 gt THEN lt expression_2 gt ELSIF lt condition_3 gt THEN lt expression_3 gt ELSIF lt condition_n gt THEN lt expression_n gt ELSE lt expression_m gt END IF Processing Flow Chart Expression 1 False Expression m E Usage Use the IF statement to perform different operations depending which of mul tiple conditions condition equation is met E Description Condition 1 If true execute expression 1 Condition 1 lf false Condition 2 If true execute expression 2 Condition 2 lf false Condition 3 If true execute expression 3 etc Condition n If true execute expression n If none of these conditions are met condition m is executed E Precautions e
126. a Retained Area nm cmn Allocated variables Variables for which the retain property for power OFF and operation start is set as retained See note 1 Applicable areas H Function block Special Holding Area H Holding Area D Data Memory Area see note 1 E Extended Data Memory Area See notes 2 and 3 Setting uni Allocated words H1408 to H1535 default 1 Except when the data type is set to TIMER or COUNTER 2 Bit data can be accessed even if the DM or EM Area is specified for the non retained area or retained area 3 The same bank number cannot be specified as the current bank in the user program if the EM Area is specified for the non retained area or re tained area Timer Area iem O ooe O Allocated variables Variables with TIMER set as the data type Applicable areas T Timer Area Timer Flag 1 bit or timer PVs 16 bits Allocated words T3072 to T4095 Timer Flag 1 bit or timer PVs 16 bits default Counter Area E Allocated variables __ Variables with COUNTER set as the data type Applicable areas C Counter Area Counter Flag 1 bit or counter PVs 16 bits Allocated words C3072 to C4095 Counter Flag 1 bit or counter PVs 16 bits default Instance Specifications Section 2 3 Note Note Function Block Holding Area H512 to H1535 The default allocation of Function Block Holding Area words set as retained and non retained words is H512 to H
127. a rentheses after the instance name registered in step 1 Calcu_execute in this example and a semi colon marks the end of the statement as shown in the following example Calcu_execute A B C gt D The value of B is passed to A and at the same time the value of C is re ceived at D A Called function block definition s input variable name B One of the following values depending on the ST program being used e Calling function block s input variable or a constant when ST is being used in the function block s instance e Global variable or local variable name when ST is being used in an ST task or SFC action program C Called function block definition s output variable name or constant D One of the following values depending on the ST program being used e Calling function block s output variable or constant when ST is being used in the function block s instance e Global variable or local variable name when ST is being used in an ST task or SFC action program E Examples Showing Additional Details The following two examples show how to actually use an ST program to calla function block Example 1 These examples show how to call a function block from each kind of source program ST task SFC and function block e Conditions A function block is called The called function block is written in ladder language or ST language Call Details a Calling a function block from an ST task or SFC p
128. a WORD CMND cor NewPLC1 sample H533 WORD Internal CMIND Response_Data WORD CMND resi NewPLC1 sample H538 WORD _ Internal CMND r FE BOOL ErorBit Carcel _ Select variables to register in Watch Window NewPLC1 Net 0 Node 0 Offline rung 0 3 2 100 NewPLC1 sample H516 09 BOOL Internal Error Bit NewPLC1 sample H516 10 BOOL Internal First C Port No sample _H543 INT Si Internal sheet2 A sheet3 The present values of input variables and output variables parameters are displayed below the parameters FunctionO01 Function Block1 BOL Ep BOOYNPUT HY ineur MAT inpuT PV of parameter for I O variable The CX One Ver 1 1 CX Programmer Ver 6 1 and later versions have a sim ulation function that can simulate the operation of a ladder program or ST pro gram within a function block instance Both step execution and break point operation are supported To return to the original instance right click in the ST program monitor window and select To Upper Layer from the pop up menu m Enabling the Simulation Function Use the following procedure to enable the simulation function 1 Open the program containing the instance to be debugged 2 Select View Toolbars and select the Simulator Debug Option in the Tool bars Tab 3 Select Work Online Simulator from the CX Programmer s PLC Menu and transfer the program to the CX Simulator in the computer
129. a type with 10 array elements is specified in D when it should be for 16 array elements the CX Programmer will output an error when compiling Size to Be Processed by Instruction Is Not Fixed When the operand size to be processed by the instruction is not fixed when the size is specified by another operand in the instruction make sure that the number of array elements is the same or greater than the size specified in the other operand i e size to be processed by the instruction Other Operand Specifying Size Constant The CX Programmer will output an error when compiling Example BLOCK TRANSFER XFER W S D W Number of words S First source word D First destination word When amp 20 is specified in W array variable a with data type WORD and 10 elements is specified in S and array variable b with data type WORD and 10 elements is specified in D XFER amp 20 a0 b 0 Even though the array variables a O and b O are both 10 words the XFER 070 instruction will execute transfer processing for the 20 words spec ified in W As a result the XFER 070 instruction will perform read write pro cessing for the I O memory area following the number of array elements that was allocated as shown in the following diagram Therefore if a 10 elements is internally allocated words e g H700 to H709 and b 10 elements is internally allocated words e g H800 to H809 XFER 070 will transfer data in words H700 to H719 to words
130. able b stored in variable a ASIN argument REAL LREAL REAL LREAL Arc sine SIN argument a ANUN b arc sine of variable b stored in variable a ACOS argument REAL LREAL REAL LREAL Arc cosine COS argu anm ACOR b ment arc cosine of variable b stored in variable a ATAN argument REAL LREAL REAL LREAL Arc tangent TAN argu a ATAN b ment arc tangent of variable b stored in variable a 143 ST Language Configuration Section 5 4 Argument data type Return value Description data type EXPT base expo REAL REAL LREAL Exponential Base xPoent a EXPT b c nent LREAL Exponential with variable b Exponent as the base and variable c as the exponent is stored in variable a Note The data type returned for numerical functions is the same as that used in the argument Therefore variables substituted for function return values must be the same data type as the argument Text String Functions The following functions can be used with CS CJ series CPU Units with unit version 4 0 or later or CJU2 series CPU Units Argument data type Return Description value data type LEN String String STRING Detects the length a LEN of a text string number 2 characters in string b stored in variable a LEFT lt Source_string gt Source _ STRING STRING _ Extracts charac a LEFT b c ee of_characters gt string ters from a text number of characters specified Numbe
131. ables 163 Statement Descriptions Section 5 5 Variable type Function block call Values passed to or received source variable name from variables in the called function block Internal variables Passed to EN Note Data type BOOL Received from ENO Note Data type BOOL Internal variables Instance_FB Calling function block definition instance Note Data type FUNC Function block 2 TIONBLOCK e Function block call destination variable settings The function block call destination has the following variables and the following values are passed with the call source ST program SFC program or call source function block Variable type Function block call Values received from or destination variable name passed to variables in the calling function block Input variables FB_IN1 Received from IN1 FB_IN2 Received from IN2 FB_INS Received from INS Output variables FB_OUT1 Passed to OUT1 FB OUT2 Passed to OUT2 FB OUTS3 Passed to OUTS Examples E Example of Entry Method 1 Instance_FB EN A FB_IN1 IN1 FB_IN2 IN2 FB_IN3 INS FB _OUT1 gt OUT1 FB_OUT2 gt OUT2 FB_OUT3 gt OUT3 ENO gt B e It is all right for the arguments and return values to be listed in irregular order e The input variables arguments must be at the beginning of the list or just after the EN variable if the EN variable is listed e Output variables may be omitted if the data is not used e Specification method 2 canno
132. ade to the manual during each revision Page numbers refer to the previous version Revision Revised content code February 2005 Original production 02 November 2005 _ Added Ver 6 1 upgrade information such as information on the Simulation functions and ST program variable monitoring July 2006 Added Ver 7 0 upgrade information 04 January 2007 Pages 17 and 18 Changed can to cannot in table two locations and changed note Page 29 Changed text in inputs cell for the status of value at next execution Page 213 Changed illustration Pages 214 216 to 218 and 202 Changed illustration and changed code Pages 215 and 219 Changed text in bottom right cell 08 February 2009 Added upgrade information from Ver 8010 ver 81 SSS 09 December 2009 Added upgrade information from ver 8310 ve 90 203 Revision History 204 Authorized Distributor
133. ading Uploading Programs to the Actual CPU Unit 113 3 2 18 Monitoring and Debugging Function Blocks 113 3 2 19 Online Editing Function Block Definitions 121 79 Procedural Flow Section 3 1 3 1 Procedural Flow The following procedures are used to create function blocks save them in files transfer them to the CPU Unit monitor them and debug them Creating Function Blocks Create a Project Refer to 3 2 1 Creating a Project for details m Creating a New Project 1 2 3 1 Start the CX Programmer and select New from the File Menu 2 Select a Device type CS1G H CS1H H CJ1G H CJ1H H CJ1M or CP1H CP1L NSJ or FQM1 CM MMA MMP m Reusing an Existing CX Programmer Project 12 02 1 Start the CX Programmer and read the existing project file cxp created using CX Programmer Ver 4 0 or earlier by selecting the file from the File Menu 2 Select a Device type CS1H H CS1G H CJ1G H CJ1H H CJ1M or CP1H CP1L NSJ or FQM1 CM MMA MMP Create a Function Block Refer to 3 2 2 Creating a New Function Block Definition for details Definition 1 2 3 1 Select Function Blocks in the project workspace and right click 2 Select Insert Function Block Ladder or Insert Function Blocks Structured Text from the pop up menu Define the Function Block Refer to 3 2 3 Defining Function Blocks Created by User for details m Registering Variables before Inputting the Ladder Program or
134. ain function blocks Tasks containing function blocks however cannot be downloaded in task units uploading is possible One dimensional array variables are supported so data handling is eas ier for many applications Note The IEC 61131 standard was defined by the International Electro technical Commission IEC as an international programmable log ic controller PLC standard The standard is divided into 7 parts Specifications related to PLC programming are defined in Part 3 Textual Languages IEC 61131 3 A function block ladder programming language or structured text ST language can be called from another function block ladder programming language or structured text ST language Function blocks can be nested up to 8 levels and ladder ST language function blocks can be com bined freely Introducing the Function Blocks Section 1 1 1 1 2 Function Block Specifications For specifications that are not listed in the following table refer to the CX Pro grammer Operation Manual W446 tem Specifications Model number WS02 CXPC1 E V9 Setup disk CD ROM Compatible CPU Units PLC models CS CJ series CS1 H CJ1 H and CJ1M CPU Units with unit version 3 0 or later Note The function block and structured 2 compatible text functions supported by CS Device Type CPU Type CJ series CPU Units with unit ver e CJ2H CJ2H CPU68 67 66 65 64 68 EIP 67 EIP 66 EIP 65 EIP sion 4 0 or later can not be used 64 E P n OSO senes
135. algorithm 3 Write values from output gt Parameters variables to parameters Data cannot be exchanged with parameters in the algorithm itself In addition if an output variable is not changed by the execution of the algo rithm the output parameter will retain its previous value 49 Instance Specifications Section 2 3 Operation when the Instance Is Not Executed When the input to the function block s EN input variable is OFF the function block is not called so the internal variables of the instance do not change val ues are retained In the same way the output variables do not change when EN is OFF values are retained Program FB definition P_Off FB EN ENO ENO Internal variable a Execution results Output variable 1 0 is turned OFF but internal variable a retains its previous value Program If the programming were entered directly into the program instead of in a function block definition both bit 1 0 and variable a would be turned OFF P_Off Internal variable a N Caution An instance will not be executed while its EN input variable is OFF so Differ entiation and Timer instructions will not be initialized while EN is OFF If Differ entiation or Timer instructions are being used use the Always ON Flag P_On for the EN input condition and include the instruction s input condition within the function block definition
136. alue e g 20 is input the value for the ClO Area address e g CIO 0020 will be passed and not the numerical value To set a numerical value always insert an amp or prefix before inputting the numerical value Example Programs Instance for function block definition A INT DATA_1 SC If the data format for DATA_1 is INT and 10 is input the value for CIO 0010 will be passed Instance for function block definition A S INT S10 LI DATA If the data format for DATA_1 is INT and the prefix amp is added so that amp 10 is input the numerical value will be passed If the input variable data type is boolean and a numerical value only e g O or 1 is input in the parameter the value for CIO 000000 0 00 or CIO 000001 0 01 will be passed Always input P_Off for O OFF and P_On for 1 ON 101 Procedures Section 3 2 3 2 6 Setting the FB Instance Areas The areas where addresses for variables used in function blocks are allocated can be set These areas are called the function block instance areas 1 2 3 1 Select the instance in the Ladder Section Window or in the global symbol table and then select Function Block SFC Memory Function Block SFC Memory Allocation from the PLC Menu The Function Block SFC Memory Allocation Dialog shown below will ap pear 2 Set the FB instance areas Function Block SFC Memory Allocatior Non reta
137. alue_Th esholdCheck EN ESOL COEE CELE LLL BOOL EN ENO Controls exec Measurel REAL BOOL Judge Measuremen inputi Resutt 0 0000000 0 Measure REAL Measuremen Input2 0 0000000 Measures REAL Measuremen Inputs 2 755583e 126 REAL UpLimit 114 REAL Low Limit 1 Judge _Judge q Right click and select Double click To Upper Layer the instance The ST program and variable monitoring areas are displayed Left side Right side ST program monitor window ST variable monitor window Ayvgalue inputi Input2 Inputs 3 0 AyvgValue 0 0000000 Float inputi 2 504856e 041 Float Inp IF Avg alue lt UpLimit AND Avg value LoyyLimity THEN Avgalue 0000000 loat UpLimit 0 0000000 Float Avge Result TRUE Result 0 ELSE Result FALSE Result 0 END_IF The variable s PV is displayed in blue characters The ST program is displayed in the left side of the window called the ST pro gram monitor window The values of variables used in the ST program are displayed in the right side of the window called the ST variable monitor window At this point it is possible to monitor variable values change PVs force set or force reset bits and copy paste variables in the Watch Window These oper ations are described below Monitoring Variables Variable values are displayed in blue in the ST variable monitor window 115 Procedures Section 3 2 11
138. and variable names do not distinguish between upper and lower case either can be used Prohibited Characters for e The following characters enclosed in square brackets cannot be used in Variable Names variable names e 1 FL 8 01 0 D D N N 1 T 0 K 61 El F1 0 DI G1 lt CL B M 7 e The numbers O to 9 cannot be used as the first character of variable names e An underscore cannot be followed immediately by another underscore in variable names e Spaces cannot be used in variable names An error message will occur if any of these characters are used in this way Operator Priority e Consider the operator priority in the structured text syntax or enclose operations requiring priority in parentheses Example AND takes priority over OR Therefore in the example X OR Y AND Z priority will be given to Y AND Z STRING Data Type e The following text strings are supported Strings with up to 255 alphanumeric characters The text strings are not case sensitive e Text strings defined in the ST language are stored in PLC memory as fol lows Data for the Text String 123456 n n 1 n 2 The null code 00 is stored n 3 at the end of the text string e Place text strings inside signal quotation marks Notation Description Indicates the text string A ASCII 41 f Indicates a text string containing a single space ASCII 20 FP ___ Indicates an empty textstring O O O O
139. ange the allocations to internal input output or input output variables as required Right click the variable and select the desired variable type from the Change usage Menu Internals 100 Change usage 0 01 Limit EDOL EELSE D100 Autobe WORC Outputs WwO 00 setCo BOOL Input Outputs PAN Tern RANI If necessary double click any variable in the variable list and change the name or comment The array and AT settings can also be changed Click the OK Button The following Function Block Ladder Generation Di alog Box will be displayed Function Block Ladder Genet FB definition name FunctionBlock Comment Cancel Input the FB definition name and comment and then click the OK Button The function block definition will be generated based on the settings and will appear under the function blocks in the Workspace dF Function Blocks JLF FunctionBlock1 The following dialog box will be displayed asking if you want to insert an instance of the function block definition below the original program circuits CX Programmer 6 1 l xj 2 Do you wish to insert a Function Block call at the position of the source ladder 93 Procedures Section 3 2 7 Click the Yes Button to insert an instance and click the No Button to not 8 insert an instance The following New Function Block Invocation Dialog Box will
140. any network e With some notebook computers the RS 232C port is allocated to a modem or an infrared line by default Following the instructions in doc umentation for your computer and enable using the RS 232C port as a normal serial port e With some notebook computers the default settings for saving energy do not supply the rated power to the RS 232C port There may be both Windows settings for saving energy as well as setting for specific com puter utilities and the BIOS Following the instructions in documenta tion for your computer disable all energy saving settings Do not turn OFF the power supply to the PLC or disconnect the connect ing cable while the CX Programmer is online with the PLC The computer may malfunction Confirm that no adverse effects will occur in the system before attempting any of the following Not doing so may result in an unexpected operation e Changing the operating mode of the PLC e Force setting force resetting any bit in memory e Changing the present value of any word or any set value in memory Check the user program for proper execution before actually running it on the Unit Not checking the program may result in an unexpected opera tion When online editing is performed the user program and parameter area data in CJ2 CS1 H CJ1 H CJU1M and CP1H CPU Units is backed up in the built in flash memory The BKUP indicator will light on the front of the CPU Unit when the backup operation is in
141. area shows the nesting level relationship between instances function block definition names in parentheses The higher level is the calling block and the lower level is the called block The variable names data types addresses allocated internal addresses and comments are displayed for variables used in the active instance selected in the directory tree in the area on the left Also if there are array variables or timer counter variables they are displayed just below the instance 3 2 11 Checking the Size of the Function Block Definition CX Programmer can be used to check the size of the function block definition being created using a similar method to checking the program capacity The procedure is as follows 1 Select Memory View from the View Menu 2 The function block definition size and number of function block definitions will be displayed in the Memory View Dialog Box as shown below UM j r Function Block Used UM Used FB Used 1479 Steps estimate 3134 Steps 4 Free UM Free FB Free 9785 Steps estimate 127938 Steps 1020 Total Total Max 11264 Steps 131072 Steps 1024 e The Used Free and Max fields under Function Block refer to the number of function block definitions 107 Procedures Section 3 2 3 2 12 Compiling Function Block Definitions Checking Program A function block de
142. ass the address data to the input variable Also set the destination address to which the address data will be passed from the output variable Untitled CX Programmer NewPLC1 NewProgram1 Section1 Diagram p Fie Edit Yiew Insert PLC Program Tools Window Help JO eA R SR t eej Laal Ori loasea 2u B AR s a XQ Sis PE Te 1 eee OGHEEKELEK i 2 4a fa 4 te FD a A ce a SS 28 49 28 im OD Program Name NewPrograrm1 ae Vee a E NewProject NewPLC1 CJ1G H Offline A Symbols GT 10 Table Settings jer Memory FunctionBlock1 E TA Programs E 3 NewProgram1 00 Symbols Section1 SN Bai END rv LAMP G4 Function Blocks Es FunctionBlock1 Section Name Section BOOL ENO BOOL n BOOL 200 00 m 1 200 00 The value of 001 is passed to input variable aaa Note Set the data in all the input parameters If even a single input parameter remains blank the left bus bar for the instance will be displayed in red to indi cate an error If this happens the program cannot be transferred to the CPU Unit Inputting Values in Parameters The following table lists the methods for inputting values in parameters Input variable data Input method Setting range type BOOL Bit data P_Off P_On 0 FALSE 1 TRUE 16 bits Positive value amp or followed 39768 to 32767 by integer DINT Double integer 32 bits 2147483648 to 214748
143. ated by displaying the instance s left bus bar in red This command updates the instance with the new information and clears the error To Lower Layer Jumps to the function block definition for the selected instance Function Block ladder generation Generates a ladder programmed function block for the selected program section while automatically determining address application conditions View Monitor FB Instance When monitoring the program online monitors ST variable status as well as I O bit and word status I O bit monitor of the ladder diagram in the instance Supported by CX Programmer Ver 6 1 and later only To Lower Layer Displays on the right side the contents of the function block definition of the selected instance Supported by CX Pro grammer Ver 6 0 and later only To Upper Layer Returns to the calling instance ladder diagram or ST Supported by CX Programmer Ver 6 0 and later only Window FB Instance Viewer Displays the FB Instance Viewer When nesting the dis play shows details such as the relationship between instance nesting levels and allocated variable addresses in the instances Creates an instance in the program section at the present cursor location When the cursor is located to the left of an input variable or the right of an output variable sets the variable s input or output parameter Function Block SFC Memory Allocation Function Block SFC Memory Stat
144. ax IF WHILE ND_WHILE REPEAT FOR CASE Invalid parameter in FOR loop A variable with data type other FOR 1 TO 100 DO I is a WORD type variable declaration than INT DINT LINT UINT X X41 UDINT or ULINT has been used for variables in a FOR END_FOR statement Invalid statement The statement is illegal E g X X 1 There is no REPEAT in the syntax The statement IF WHILE UNTIL X gt 10 REPEAT FOR CASE REPEAT does not contain an END_REPEAT IF WHILE REPEAT FOR CASE or REPEAT in the syn tax respectively Invalid variable for Function The specified variable for the Y SIN X1 ENO gt 1 output function output is illegal A non boolean BOOL variable or numeral has been specified as the ENO transfer destina tion Missing The call for a data format con Y INT_TO_DINT X version instruction or function does not contain a open ing parenthesis Missing The operator parentheses or Y X1 X2 2 the call for a data format con version instruction or function does not contain a closing parenthesis corresponding to opening parenthesis Missing The integer equation in the CASE A OF CASE statement is not fol 1 X 1 END CASE lowed by a colon Missing Is not included in the assignment equation Missing The statement is not con cluded by a Semicolon Missing DO DO is not provided in the FOR or
145. ble RIGHT Extract Characters from Right e Function Extracts the specified number of characters from the right of the specified text string e Application Return_value RIGHT Source_string Number_of_characters 187 Function Descriptions Appendix C e Arguments and Return Values TU Source_string STRING Specifies the text string from which to extract characters Number_of_characters INT UINT Specifies the number of char acters to extract STRING Returns the extracted charac ters e Example ae Message Message A B C D E F G H STRING Result Result RIGHT Message 3 FGH is stored in the Result variable MID Extract Characters from Middle e Function Extracts the specified number of characters starting from the specified position of the specified text string e Application Return_value MID Source_string Number_of_characters Position e Arguments and Return Values TET Source_string STRING Specifies the text string from which to extract characters Number_of_characters INT UINT Specifies the number of characters to extract Position INT UINT Specifies the position from which to start extracting characters The first character is position 1 e g position 1 is A in mes sage 1 in the following illustration STRING Returns the extracted characters e Example Variables message A B C D E F G H STRING Message STRING Result Result M
146. ble WORD variable WORD variable Edit Variable x Advanced Settings x MV Array Variable Data Type WORD x Cancel Cancel ae Anay Size CA _ Usage Internal v ed AT Settings M AT Specified Address hitial Value 0 Retain Comment Settings for variable SCL as an array variable with element numbers 0 to 9 Use an array variable when specifying the first or last of multiple words in an instruction operand to enable reusing the function block if an internal variable with a AT property cannot be set for the operand and an external variable can not be set When using an array setting for an input output variable specify the address of the first word for the input parameter CX Programmer version 7 0 or higher When using an array setting for an internal variable prepare an array variable with the number of elements for the required size and after set 39 Function Block Specifications Section 2 1 Note Algorithm Operand Input Restrictions Note 40 ting the data in each array element specify the first or last element in the array variable for the operand Example Function block definition Instance Variable SCL _ EN ENO SCL WORD 10 S D 100 Algorithm SCL BODY Specifying this array element in the SCL instruction is the same as specifying the first address LD P_On MOV 0000 SCL 0 MOV amp 0SCL 1 MOV 0300 SCL 2 MOV amp 4000 SCL 3 SCL S SCL O D
147. block definition T S ai 00 i NO Te smnbol a An instance called sample S Eum CWORD is created from the function AF Function Blocks EF FunctionBlock1 block definition called FunctionBlock1 a PEELE EEL E DLE The instance will be automatically registered in the global symbol table with an instance name of sample and a data type of FUNCTION BLOCK E Method 2 Registering the Instance Name in the Global Symbol Table in Advance and Then Selecting the Instance Name If the instance name is registered in the global symbol table in advance the instance name can be selected from the global symbol table to create other instances 98 Procedures Section 3 2 12 3282 1 Fora ladder diagram select a data type of Function block in the global symbol table input the instance name and registered the instance For ST select a data type of Function block use the instance name and use a Call statement for the function block as follows to call the function block Input the instance name any internal variable name with a function block data type followed by the arguments in parentheses i e specify the input variable values of the calling function block to pass to the input variables of the called function block Also include the return values i e specify the output variable values of the called function block to pass back to the out put variables of the calling function block 2 Press the F Key in the Ladder Sec
148. bol table Method 2 Set the data type in the global symbol table to FUNCTION BLOCK specify the function block definition to use and input the instance name to register it Note When using ST language a function block can be called by select ing FUNCTION BLOCK as the variable s data type using the de sired instance name and entering a function block call statement 97 Procedures Section 3 2 1 2 3 E Method 1 Using the F Key in the Ladder Section Window and Inputting the Instance Name 1 In the Ladder Section Window place the cursor in the program where the instance is to be inserted and press the F Key Alternately select Func tion Block Invocation from the Insert Menu The New Function Block In vocation Dialog Box will be displayed When using ST language a function block can be called by selecting FUNCTION BLOCK as the variable s data type using the desired in stance name and entering the following function block call statement Specify arguments in parentheses after the instance name to pass input variable values from the calling function block to input variables in the called function block and also specify return values to receive output vari able values from the called function block to output variables in the calling function block The instance name can be set to any internal variable with the FUNCTION BLOCK data type Input the instance name select the function b
149. bols See note 2 Input output parame Addresses program symbols global symbols local symbols ters Note The following table shows the methods for inputting values in parameters Input Contents Parameter value input Setting range variable method data type POF P_On 0 FALSE 1 TRUE 47 Section 2 3 Input Contents Parameter value input Setting range variable method data type 16 bits Positive value amp or followed 32 768 to 32 767 DINT Double integer 32 bits by integer 2 147 483 648 to 2 147 483 647 Instance Specifications LINT Long 8 byte integer 64 bits Negative value followed by 9 993 372 036 854 775 808 to integer 9 223 372 036 854 775 807 UINT Unsigned integer 16 bits Positive value amp or followed amp 0 to 65 535 UDINT Unsigned double integer by integer ULINT Unsigned long 8 byte 64 bits integer REAL Real number 32 bits Positive value amp or followed by real number with decimal point 64 bits Negative value followed by real number with decimal point LREAL Long real number WORD 16 bit data 16 bits followed by hexadecimal number 4 digits max amp or followed by decimal number DWORD 32 bit data 32 bits followed by hexadecimal number 8 digits max amp or followed by decimal number amp 0 to 4 294 967 295 amp 0 to 18 446 744 073 709 551 615 3 402823 x 10 8 to 1 175494 x 10 38 0 1 175494 x 10738 to 3 402823 x 1098
150. cal operators e Comparison operators e Numerical functions e Arithmetic functions e Standard text string functions e Numeric text string functions e OMRON expansion functions e Comments e The TIMER and COUNTER data types cannot be used For further details refer to SECTION 5 Structured Text ST Language Speci fications in Part 2 Structured Text ST 53 Programming Restrictions Section 2 4 2 4 3 Programming Restrictions Restrictions in Locating Function Block Instances No Branches to the Left of the Instance Only One Instance per Rung No Function Block Connections Downloading in Task Units Programming Console Displays Online Editing Restrictions 54 Branches are not allowed on the left side of the instance Branches are allowed on the right side Incorrect Correct CO FB CO A program rung cannot have more than one instance Incorrect i an A function block s input cannot be connected to another function block s out put In this case a variable must be registered to transfer the execution status from the first function block s output to the second function blocks input 0 0 FB2 Temporary variables EN transfer the value from FB1 to FB2 D3000 XIN1 D100 XIN2 Tasks including function blocks cannot be downloaded in task units but uploading is possible When a user program created with the CX Programmer is downloaded to the CPU Unit and read by a Programmi
151. cate internal input output and input output variables as accurately as possible Program circuits that contain operands that are only symbols i e that are not addresses cannot be converted To create function blocks from program cir cuits that contain operands that are only symbols copy and past the program circuits into a function block definition Refer to Copying User Program Cir cuits and Pasting in Ladder Programming of Function Block Definitions on page 90 for details 94 Procedures Section 3 2 Program Circuits That Must Be Altered before Generating a Function Block Definition Program Circuits That Must Be Altered after Generating a Function Block Definition In the following case the program circuits must be altered before a function block definition can be automatically generated Addresses Used Both as Bits and Words The bit and word addresses will be registered as different variables The pro gram can be altered in advance to avoid this Example MOV 021 for WO and SET for W0 02 0 00 Mo v 021 Move DO Source word wg Destination 1 0 01 2 SET Set Yv0 02 Bit J Here the instruction can be changed to specify a word instead of a bit As shown below WO is used both for MOV 021 and SETB 532 and the bit number for SETB 532 is specified using amp 2 0 00 Mo Vv 021 Move Source word Destination SETB 532 Bit Set Set Channel address Bit In the following cases operand spe
152. ception in no pro Reception Overflow tocol mode Flag RS 232C Port A393 Contains the number of characters received in no protocol Reception Counter mode For further information and precautions on related Auxiliary Area flags refer to the section on RXD Serial Com munications Instruction in the CS CJ series Instruction Reference Manual RXD_SCB Receive String via Serial Port on Serial Communications Board e Function Receives a text string from a serial port on a Serial Communications Board SCB e Application RXD_SCB Storage_location Number_of_characters Serial_port e Conditions The serial communications mode of the serial port must be set to no protocol communications e Arguments and Return Values Data type location STRING Specifies the storage location for the received text string Number_ banaa characters INT UINT WORD Specifies the number of characters to receive 0 to 255 Serial_port INT UINT WORD Specifies the number of the serial port 1 Serial port 1 2 Serial port 2 197 Function Descriptions Appendix C e Example Serial Commu nications Board SCB CPU Unit Message Value to read Serial Barcode reader i Variables BOOL P_DoRecvData _ Variable to control receive function i STRING Message Variable to store received message BOOL P_EndRecvSCBPort1 Reception Completed Flag AT A356 06 Use serial port 1 Use serial port
153. ch function block can be stored in a separate definition file cxf FunctionBlock1 FunctionBlock2 Instances created in program PLC2 sections Function Block Library A function block definition created in a project with CX Programmer Ver 6 0 Files cxf can be saved as a file 1 definition 1 file enabling definitions to be loaded into other programs and reused Note When function blocks are nested all of the nested destination function block definitions are included in this function block library file cxf Project Text Files Data equivalent to that in project files created with CX Programmer Ver 6 0 Containing Function cxp can be saved as CXT text files cxt Blocks cxt 1 1 4 Function Block Menus in CX Programmer Ver 5 0 and later Versions The following tables list menus related to function blocks in CX Programmer Ver 5 0 and later versions For details on all menus refer to the CX Program mer Operation Manual W446 Main Menu Function Block Load Function Reads the saved function block library files cxf Block from File Save Function Saves the created function block definitions to a file func Block to File tion block library file cxf Introducing the Function Blocks Section 1 1 Edit Update Function Block When a function block definition s input variables output variables or input output variables have been changed after the instance was created an error will be indic
154. cifications must be changed using array settings after generating the function block definition Instructions with Multiword Operands Some of Which Are Changed b Another Instruction in the Program Circuits Example DO Specified as the First Word for MOVL 498 and D1 Specified for MOV 021 0 00 MOYL 498 Long Move 1 2345678 DO Mov 021 Move 1234 D1 First source word First destination word Source word Destination COELELEELEEL ELE LEE EEL Le 95 Procedures 96 Section 3 2 J As shown below the variables must be changed to specify the first word in an array and a specific word in the same array after the function block definition has been generated Example DT_WORD is set as a WORD array variable with 2 elements DT_WORD 0 is specified for MOVL 498 and DT_WORD 1 is specified for MOV 021 BitO1 MO VL 498 Long Move 12345678 First source word DT_WORD O First destination word 1 Bit00 2 MOv021 Move Source word Destination tgtttttttt Instructions with Two Operands Specifying Starting and Ending Words Example DO to D9 Specified for BSET 071 0 00 Block Set BSET 071 10 Source word Starting word End word J As shown below the variables must be changed to specify the first word in an array and a specific word in the same array after the function block definition has been generated Example DT_WORD is set as a WORD array variable with
155. cified Address AT settings can be made in the variable properties to specify allocation addresses for Basic I O Units Special I O Units or CPU Bus Units or Auxil lary Area addresses not registered using the CX Programmer A variable name is required to achieve this Use the following procedure to specify an address 1 2 3 1 After inputting the variable name in the New Variable Dialog Box click the Advanced Button The Advanced Settings Dialog Box will be displayed 2 Select AT Specified Address under AT Settings and input the desired ad dress Select AT Input address The variable name is used to enter variables into the algorithm in the func tion block definition even when they have an address specified for the AT settings the same as for variables without a specified address For example if a variable named Restart has an address of A50100 spec ified for the AT settings Restart is specified for the instruction operand Array Settings An array can be specified to use the same data properties for more than one variable and manage the variables as a group Use the following procedure to set an array 89 Procedures Using Structured Text Note Section 3 2 1 After inputting the variable name in the New Variable Dialog Box click the Advanced Button The Advanced Settings Dialog Box will be displayed 2 Select Array Variable in the Array Settings and input the maximum number of elements in the array
156. cks Supports Nesting and Multiple Languages Section 1 2 The function blocks are created with variable names that are not tied to actual addresses so new programs can be developed easily just by reading the def initions from the file and placing them in a new program Mathematical expressions can be entered in structured text ST language With CX Programmer Ver 6 0 and later versions function blocks can be nested The function block nesting function allows just special processing to be performed in a ST language function block nested within a ladder lan guage function block Function block ladder language BOOL ENOL pececeeeeeeeeeeeebeeees input_data REAL REAL result_data data RESULT Gercccertitetiiiteieile Call Nesting Function block ST language RESULT 0 0 IF M TRUE THEN RESULT SIN data ENDIF 1 2 3 Function Block Structure Function Block Definitions Number of Function Block Definitions Function blocks consist of function block definitions that are created in advance and function block instances that are inserted in the program Function block definitions are the programs contained in function blocks Each function block definition contains the algorithm and variable definitions as shown in the following diagram E Example CLOCK PULSE Function Block Definition Example CLOCK PULSE 1 Algorithm i tim_b i Algorithm TIMX tim_a OFF_TIME tim_a
157. cks Section 1 1 Pte o Specifications Functions not Defining Numberof CJ2H Units supported by and creat function e CJ2H CPU6L EIP 2 048 max per CPU Unit CX Program ing func block defini mer Ver 4 0 tion blocks tions CS1 H CJ1 H CPU Units or earlier e Suffix CPU44H 45H 64H 65H 66H 67H 64H R 65H R 66H R 67H R 1 024 max per CPU Unit e Suffix CPU42H 43H 63H 128 max per CPU Unit CJ1M CPU Units e CJ1M CPU11 12 13 21 22 23 128 max per CPU Unit CP1H CPU Units e All models 128 max per CPU Unit CP1L CPU Units e CP1L M L 128 max per CPU Unit NSJ Controllers e NSJLI LILILILI G5D 1 024 max per Controller NSJLJ LIUILILI M3D 128 max per Controller FQM1 Flexible Motion Controllers e FQM1 CM002 MMA22 MMP22 128 max per Controller Function 64 characters max block names Introducing the Function Blocks Section 1 1 O oe O Specifications Defining Variables 30 000 characters max and creat ing func tion blocks Functions not supported by CX Program mer Ver 4 0 or earlier Variable types Input variables Inputs output variables Out puts input output variables In Out internal variables Internals and external variables Externals Number of variables used in Maximum number of variables per function block a function block definition not including internal vari Input output variables 16 max ables external variables
158. complement is used for negative integers For example when a value of 10 decimal is set in an INT variable it will be expressed as 16 FFF6 in hexadecimal 5 4 4 Operators Operation Symbol Data types supported by operator Priority 1 Lowest 11 Parentheses and expression brackets array index Function evaluation identifier Depends on the function nei ps ge to Appendix C Func tion Descriptions Addtion INT DINT LNT UINT UDINT ULINT REAL LREAL 6 Subtraction INT DINT LINT UINT UDINT ULINT REAL LREAL 6 Comparisons lt gt lt gt BOOL INT DINT LINT UINT UDINT ULINT 7 WORD DWORD LWORD REAL LREAL Equality BOOL INT DINT LINT UINT UDINT ULINT WORD DWORD LWORD REAL LREAL Non equality lt gt BOOL INT DINT LINT UINT UDINT ULINT WORD DWORD LWORD REAL LREAL Boolean AND a BOOL WORD DWORD LWORD C Boolean AND AND B00L WORD DWORD LWORD eS y y OR Boolean OR OR BOOL WORD DWORD LWORD 11 Note Operations are performed according to the data type Therefore the addition result for INT data for example must be a variable using the INT data type Particularly care is required when a carry or borrow occurs in an operation for integer type variables For example using integer 142 ST Language Configuration Section 5 4 type variables A 3 and B 2 if the operation A B 2 is performed the result of A B is 1 1 5 with the value below the decimal discarded so
159. cted Print Item of FB Definition eA ay a Hee 2 Select the All Rung or Select Rung option When the Select Rung option is selected specify the start rung and end rung numbers When a page number has been specified in the header and footer fields in File Page Setup the first page number can be specified 108 Procedures Section 3 2 Note 3 Select either of the following options for the function block printing range e Symbol table and program default e Symbol table e Program 4 Click the OK Button and display the Print Dialog Box After setting the printer number of items to print and the paper setting click the OK button 5 The following variable table followed by the algorithm e g ladder program ming language will be printed Variable Type AT Initial Value EN No FALSE Inputs BOOL Controls execution of the Function Block Outputs ENO 20 Indicates successful execution of the Function Block Function Block Name FB_sample04 000000 pond 000000 wt EN OP1 H OP2 D100 Controls D200 execution of the Function Block For details on print settings refer to the section on printing in the CX Pro grammer Operation Manual W446 3 2 14 Password Protection of Function Block Definitions Overview Password Protection on both Writing and Reading Password Protection on Writing Only Function block definitions in a
160. cted The icon also indicates the protection level as shown below 9 Prohibit writing and display same for ladder and ST 4LF Prohibit writing ladder GF Prohibit writing ST Protecting Multiple __ Use the following procedure to set the password protection for two or more Function Block Definitions function block definitions at the same time 1 2 3 1 Select Function Blocks in the project workspace right click and select Function Block Protection Set from the pop up menu 110 Procedures Section 3 2 2 The Function Block Protection Collective Setting Dialog Box will be dis played Select the names of the function blocks that you want to protect select the Protection Type protection level input the password and click the Set Button Function Block Protection Co Input the password after selecting Function Blocks Function Block Name FunctionBlock1 C FunctionBlock2 FunctionBlock3 C FunctionBlock4 FunctionBlock5 C FunctionBlock6 FunctionBlock C FunctionBlock8 FunctionBlock3 Password sats Release Cancel 3 The selected function block definitions will be password protected Clearing Password Protection Clearing Password Protection on an Individual Function Block Clearing Password 1 2 3 Protection on Multiple Function Blocks 1 2 3 This operation can be performed offline only Password protection can be cleared from an individual function b
161. ction cannot be used with the simulator 1 Start monitoring 2 Select the desired ST program in the project workspace and display it in program view 3 Select Program Online Edit Begin At this point it will be possible to edit the ST program 4 Start editing the ST program Procedures Transferring the Changes 1 2 3 Cancelling the Changes Transfer Modes Standard Mode Quick Mode Selecting a Transfer Mode Caution Note Section 6 1 1 After editing is completed select Program Online Edit Send Changes The Send Changes Dialog Box will be displayed 2 Select the desired transfer mode and click the OK Button The edited ST program will be transferred to the PLC For details on the transfer modes refer to Transfer Modes on page 177 and Selecting a Transfer Mode on page 177 3 After the transfer is completed the ST program will return to its previous status in which the ST program cannot be edited If further editing is nec essary resume the online editing procedure from the beginning of the pro cedure Starting Online Editing To discard the changes made to the ST program select Program Online Edit Cancel The edited ST program will not be sent to the PLC and the ST program will revert to the original status before online editing was started In Standard Mode both the ST program s source code and object code are transferred to the CPU Unit Some time may be required for Standar
162. d regardless of the number of elements in the array variable Particularly if the number of elements in the array is less than the size i e size to be processed by the instruction specified by another operand vari able other variables will be affected and unexpected operation may occur Instruction Support and Operand Restrictions The tables in this appendix indicate which instructions can be used in function blocks created with ladder programming language the restrictions that apply to them and to the operands including the variables whether array variables and AT settings or external variable specifications are required and which data types can be used Instructions that are not supported for use in function block definitions by the CX Programmer CP series CPU Units and CS CJ series CPU Units with unit version 3 0 are given as Not supported in function blocks in the Symbol col umn e Operands that specify the first or last of multiple words thereby requiring AT setting or specification of array variables are indicated as follows in the AT setting or array required column Yes An AT setting or external specification or array variable must be specified for the operand to specify the first or last of multiple words e The value within parentheses is the fixed size used by the instruction for reading writing or other processing This size indicates either the data type size or the size required for the array variable sp
163. d Mode transfers because of the quantity of data that must be sent Other editing or transfer operations cannot be performed until the transfer has been com pleted In Quick Mode only the ST program s object code is transferred to the CPU Unit The ST source code is not transferred making Quick Mode faster than Normal Mode After transferring the object code in Quick Mode either 1 select Program Transfer SFC ST Source to PLC to transfer the source code or 2 transfer the source code according to instructions displayed in a dialog box when you go Offline After transferring the object code a yellow mark will be displayed at the bot tom of the window until offline status is entered to indicate that the source code has not yet been transferred This yellow mark will disappear when the source code is transferred As a rule use Standard Mode to transfer ST program changes unless online editing is performed frequently If too much time is required increase the baud rate as much as possible before the transfer If too much time is still required and debugging efficiency is hindered by continuous online editing use Quick Mode as an exception but be sure you understand the restrictions given in the following note Mode Restrictions in Quick Mode Restrictions in Quick Mode ST Source Code Not Transferred When the ST program s ST source code is not being transferred the CX Pro grammer cannot upload the program correctly the next time
164. d turn ing the scrolling wheel on a wheel mouse 3 When an ST language program is input or pasted into the ST input area syntax keywords reserved words will be automatically displayed in blue comments in green errors in red and everything else in black 4 To change the font size or colors select Options from the Tools Menu and then click the ST Font Button on the Appearance Tab Page The font names font size default is 8 point and color can be changed 5 For details on structured text specifications refer to SECTION 5 Struc tured Text ST Language Specifications in Part 2 Structured Text ST Registering Variables as Required The ladder program or structured text program can be input first and variable registered as they are required Using a Ladder Program When using a ladder diagram a dialog box will be displayed to register the variable whenever a variable name that has not been registered is input The variable is registered at that time Use the following procedure 1 2 3 1 Press the C Key and input a variable name that has not been registered such as aaa in the New Contact Dialog Box Note Addresses cannot be directly input for instruction operands within function blocks Only Index Registers IR and Data Registers DR can be input directly as follows not as variables Addresses DRO to DR5 direct specifications IRO to IR15 and indirect specifications IRO to IR15 2 Click the OK Button The N
165. d variables tables for function blocks can be changed and variable tables cannot be changed online while the PLC is operation See note This enables debugging and when the PLC is running Only I O parameters changing function block definitions in systems that cannot be stopped for function block instances can be changed such as systems that operate 24 hours a day Operation Right click the function block definition in the Work Space and select FB Online Edit Begin from the pop up menu Note Function block instances cannot be added Note This function cannot be used for simulations on CX Simulator Support for STRING Data Type and Processing Functions in Standard Text Programs e The STRING data type text cannot be used in The STRING data type text can be used in ST programming This ST programming See note enables for example substituting a text string for a variable e g a e There are no text processing functions sup READ to easily set a variable containing text i e ASCII charac ported for ST programming ters In doing this the user does not have to be concerned with the e Even in a ladder program the user has to con ASCII code or code size sider the ASCII code and code size of text for Text processing functions are supported for ST programming includ display messages and no protocol communica ing text extraction concatenation and searching This enables easily tions see note when execut
166. de Transfer FB source Transfer takes time but upload can be done normally Quick mode Do not transfer FB Source Transfer can be done more quickly but itis then necessary to transfer the FB Source to the PLC later to enable program upload x _ Cancel Cancel Select one of the following transfer modes and click the Yes Button e Normal Mode e Quick Mode Refer to Transfer Modes on page 124 and Selecting a Transfer Mode on page 125 for details on the transfer modes 123 Procedures Transfer Modes 124 Section 3 2 The new function block definition will be transferred to the buffer memory in the CPU Unit and the progress of the transfer will be displayed in a dialog box Transter FB programs to PLO NewPLC1 N a 7 1 C Transtering FB Program information Byte 974 of 2793 Downloading Don t power off PLC At this point the CPU Unit will still be operating with the previous function block definition The following dialog box will appear when the transfer has been complet ed CX Programmer 2 x 2 re you sure you want to reflect the changes to the program J At this point the CPU Unit will still be operating with the previous function block definition 5 Click the Yes Button The user program in the CPU Unit will be updated with the new function block definition from the buffer memory of the CPU Unit If the No Button is click the new function block defi
167. definition has a name The names can be up to 64 char acters long and there are no prohibited characters The default function block name is FunctionBlockl where LI is a number assigned in order Function block definition name CLOCK PULSE EN ENO BOOL BOOL ON_TIME INT OFF_TIME INT Select either ladder programming language or structured text ST language 1 For details on ST language refer to SECTION 5 Structured Text ST Language Specifications in Part 2 Structured Text ST 2 When nesting function blocks using ST language and ladder language can be combined freely version 6 0 and higher only Define the operands and variables used in the function block definition e Variable names can be up to 30 000 characters long e Variables name cannot contain spaces or any of the following characters 1 AHR amp l L453 lt gt 7 7 e Variable names cannot start with a number 0 to 9 e Variable names cannot contain two underscore characters in a row e The following characters cannot be used to indicate addresses in I O memory A W H or HR D or DM E or EM T or TIM C or CNT followed by the numeric value word address 31 Function Block Specifications Section 2 1 Variable Notation CLOCK PULSE EN ENO Variable table BOOL BOOL ON_TIME ONT Input ON_TIME a de Input OFF_TIME a L Output variables INT Input variables
168. displayed the next time the CX Pro grammer is started CX Programmer v7 2 l x FB SFC ST Source in the project D programisample3_NewPLC1 FBK t may not be transferred correctly Go online and check the status of the PLC conei Click the OK Button Go online with the CPU Unit to which a transfer was made using Quick Mode d When you go online the CXP project automatically backed up in the computer will be started and the following dialog box will be displayed CX Programmer 7 2 xi Check if the backed up FB SFC ST Source can be transferred e IF No is selected the program cannot be transferred From the PLC correctly after going online Yes No e Click the Yes Button and then following the instructions provided in the dialog boxes The source code automatically backed up in the comput er can be compared to the object code in the CPU Unit and if they match the source code can be transferred 125 Procedures Note Section 3 2 Source Code and Object Code Before transferring a program the CX Programmer normally compiles the source code into object code so that the CPU Unit can execute it and then transfers both the source code and object code to the CPU Unit The CPU Unit stores the source code and object code in user memory and built in flash memory Only when both the source code and object code exist in the CPU Unit can the CX Programmer transfer and restore the program for the upload operation Canc
169. dress D200 Note Input output variables are specified in a CX Programmer variable table by selecting In Out for the variable usage Function Blocks Section 1 2 E Reference Information A variety of processes can be created easily from a single function block by using parameter like elements Such as fixed values as input variables and changing the values passed to the input variables for each instance Example Creating 3 Instances from 1 Function Block Definition r Cyclic taskeO Instance CASCADE_01 CASCADE_01 Pp on contro 1 Algorithm Ps EN ENO LC Internal and I O Me variables amp 10 OFF_TIME Function Block Definition Example CONTROL Instance CASCADE_02 CASCADE_02 P_On CONTROL eo Algorithm gt Algorithm i k en ENO O amp 15 Variables Internal and I O ON_TIME variables amp 1Q OFF_TIME Example There are 3 FB instances and each 795 has its own I O and Instance celle task hscane os internal variables CASCADE_03 1 Algorithm Internal and I O variables If internal variables are not used if processing will not be affected or if the internal variables are used in other locations the same instance name can be used at multiple locations in the program Cyclic task Qocape
170. e Niet nae aed ees need eee eee 167 SECTION 6 Creating ST Programs essecsccceccecceccecsee e 169 OL Procedi eaa raaa sets A E A By r N eae 170 Appendices A System defined external variables supported in function blocks 181 B SiC A et ENON yena r ar E ee E E EN E ETA 183 C Pune tion DescrniphoNnS ereet enen ashe ae Rein whe ee he eae E inst 187 ROU o o 5k 5 54 sean bocca E ola ere eat ae lo eae aac ee eee aces Revision History 26402200600 6655 i0eu es oveseetweusccs 203 About this Manual This manual describes the CX Programmer operations that are related to the function block functions and Structured Text ST functions The function block and structure text functionality of CX Program mer is supported by CU2H CPU Units by CS1 H CJ1 H and CJ1M CPU Units with unit version 3 0 or later by CP series CPU Units and by NSJ series and FQM1 series Controllers Some function block and structure text functionality however is supported only by CU2H CPU Units by CS1 H CJ1 H and CJ1M CPU Units with unit version 4 0 or later For details refer to 1 6 Version Upgrade Information For information on functionality other than function blocks and structure text refer to the following man uals e CX Programmer CX Programmer Operation Manual W446 and CX Programmer Operation Manual SFC W469 e CPU Unit The operation manuals for the CS series CJ series CP series and NSJ series Controllers CX
171. e ST source code will be transferred if the pro grams match If the PLC is in RUN mode switch the operating mode to another mode and execute the ST source code transfer from the CX Programmer menu 1 Start the CX Programmer and open the project file with the ST source code to be transferred 2 Connect online with the PLC that was the destination of the Quick Mode transfer The flashing yellow message Src Fail will be displayed in the CX Programmer s status bar 3 Select Program Online Edit Transfer SFC ST Source to PLC The ST source code transfer dialog box will be displayed 4 Click the OK Button The ST source code that was automatically backed up in the computer will be compared with the object code in the actual PLC and the ST source code can be transferred if the code matches Before transferring a program the CX Programmer normally compiles the program code ST source code into object code which can be executed in the CPU Unit and then transfers both the source code and object code to the CPU Unit The CPU Unit stores the programs ST source code and object code in user memory and built in flash memory Only when both the source code and object code exist in the CPU Unit can the CX Programmer transfer and restore the program for the upload operation Restrictions in Online Editing of ST Programs 178 The following restrictions apply to online editing of ST programs Procedures Section 6 1 e For CJ2 series CP
172. e and Serial_port stored in variable a The variable e indicates the internal logic port number Serial_port Internal_logic INT _port UINT WORD Angle Conversion The following functions can be used with CS CJ series CPU Units with unit Instructions version 4 0 or later or CU2 series CPU Units Argument Return value Description data type data type DEG_TO_RAD argument REAL LREAL REAL LREAL Converts an angle from a DEG_TO_RAD b degrees to radians an angle in serie in variable b is converted to radians and stored in variable a RAD_TO_DEG argu REAL LREAL REAL LREAL Converts an angle from a RAD_TO_DEG b ment radians to degrees an angle in radians in variable b is converted to degrees and stored in variable a 147 Statement Descriptions Section 5 5 5 5 Statement Descriptions 5 5 1 Assignment E Summary The left side of the statement variable is substituted with the right side of the statement equation variable or constant E Reserved Words Combination of colon and equals sign E Statement Syntax Variable Equation variable or constant E Usage Use assignment statements for inputting values in variables This is a basic statement for use before or within control statements This statement can be used for setting initial values storing calculation results and incrementing or decrementing variables E Description Substitutes stores an equation variable or
173. ecified in word units For array variables this size must be the same as the num ber of elements Otherwise the CX Programmer will output an error when compiling Instruction Support and Operand Restrictions Section 2 7 e f not fixed is indicated in parentheses the size used by the instruc tion for reading writing or other processing can be changed Make sure that the maximum size required for the number of array elements is provided Even if the number of array elements in an operand with unfixed size does not match the size specified in another operand the CX Pro grammer will not output an error when compiling The instruction will operate according to the size specified in the other operand regard less of the number of array variable elements Operands that do not require an AT setting or specification of array vari ables Note When specifying the first or last word of multiple words in an in struction operand input parameters cannot be used to pass data to or from variables Either an AT setting must be used or one of the following must be used 1 An input output variable set to an array must be used and the address of the first word must be set for the input parameter CX Programmer version 7 0 or higher or 2 An array variable with the required number of elements must be pre pared and after the array data is set in the function block definition the first or last element in the array variable must be specifi
174. ed for the operand e Any operands for which an AT setting must be specified for an I O mem ory address on a remote node in the network are indicated as Specify address at remote node with AT setting in the AT setting or array required column The following table lists all of the instructions supported by the CS CJ series CPU Units CP series CPU Units NSJ series NSJ Controllers and FQM1 Flexible Motion Controllers unit version 3 0 or later e Some instructions are supported only by FQM1 Flexible Motion Control lers unit version 3 0 or later These are indicated by FQM1 only under the mnemonic e There are also instructions that are supported only by the CS CuJ series CPU Units CP series CPU Units and NSJ series NSJ Controllers i e that cannot be used by the FQM1 Flexible Motion Controllers unit version 3 0 or later Refer to the FQM1 Instructions Reference Manual Cat No 0013 to confirm the instructions that are supported For details refer to the Programmable Controllers Instructions Reference Manual Cat No W474 69 CPU Unit Function Block Specifications Section 2 8 2 8 CPU Unit Function Block Specifications The specifications of the functions blocks used in CS CJ series and CP series CPU Units are given in the following tables Refer to the other operation man uals for the CS CJ Series and CP Series for other specifications 2 8 1 Specifications a CPU Units Specification a ee CPU68 CJ2H CPU6
175. ed for the first and second operand An instance will not be executed while its EN input variable is OFF so the fol lowing precautions are essential when using a Timer Instruction in a function block definition The Timer Instruction will not be initialized even though the instance s EN input variable goes OFF Consequently the timers Completion Flag will not be turned OFF if the EN input variable goes OFF after the timer started operat ing Programming Restrictions Section 2 4 EPN IE AAE AEA I A AT A I E A A A E f i i I H 4 The timers Completion Flag UP will not be turned OFF even though input condition 0 00 goes OFF If Timer Instructions are being used always use the Always ON Flag P_On for the EN input condition and include the instruction s input condition within the function block definition P On The timer s completion flag UP is turned OFF when input condition a 0 00 goes OFF e If the same instance containing a timer is used in multiple locations at the same time the timer will be duplicated 2 4 2 ST Programming Restrictions Restrictions when e Only the following statements and operators are supported Using ST Language in e Assignment statements Function Blocks e Selection statements CASE and IF statements e Iteration statements FOR WHILE REPEAT and EXIT statements e RETURN statements e Function block calling statements e Arithmetic operators e Logi
176. ed individually in task units 174 Procedures Section 6 1 6 1 7 Comparing ST Programs It is possible to compare the edited ST program with an ST program block in the actual PLC or another project file to check whether the two ST programs are identical For details on comparing programs refer to the CX Programmer Operation Manual W446 6 1 8 Monitoring and Debugging the ST Program Monitoring the ST The ST program can be monitored Program s Variables The ST program is displayed in the left side of the window called the ST pro gram monitor window The values of variables used in the ST program are displayed in the right side of the window called the ST variable monitor window At this point it is possible to monitor variable values change PVs force set or force reset bits and copy paste variables in the Watch Window These oper ations are described below E Monitoring Variables Variable values are displayed in blue in the ST variable monitor window E Changing PVs To change a PV select the desired variable in the ST variable monitor window displayed in reverse video when selected right click and select Set Value from the pop up menu Select the variable criterion 0 00000C criterion 0 00000C d eeaeee Ge The Set New Value Dialog Box will be displayed Input the new value in the Value field E Force setting and Force resetting Bits To force set force reset or clear the forced statu
177. eful parts c Existing ladder programming can be automatically turned into a function block using Edit Function Block ladder generation 2 When creating the program insert copies of the completed function block definition This step creates instances of the function block 3 Enter an instance name for each instance 23 Usage Procedures Section 1 5 4 Set the variables input source addresses and or constants and output 6 T destination addresses and or constants as the parameters to pass data for each instance Select the created instance select Function Block Memory Function Block Memory Allocation from the PLC Menu and set the internal data area for each type of variable Transfer the program to the CPU Unit Start program execution in the CPU Unit and the instance will be called and executed if their input conditions are ON Function block definition A Algorithm Table defining usage land properties of variables a b c etc 1 5 2 Reusing Function Blocks Use the following procedure to save a function block definition as a file and use it in a program for another PLCs 24 1 2 3 Note Standard program section T with variable Insert in names a b C program etc 2 Variables The instance is executed if the input condition is established 3 Input instance name Program input Instance of function block definition A conditi
178. eling Changes to Function Block Definitions Select FB online Edit Cancel to discard any changes made to a function block definition The function block definition will not be transferred to the CPU Unit and the original definition will be restored Effects on CPU Unit Operation Maximum Cycle Time Extensions for Online Editing Note Caution The following will occur if online editing is performed with the CPU Unit oper ating in MONITOR mode 1 The cycle time of the CPU Unit will be extended by several cycle times when the program in the CPU Unit is rewritten and 2 The cycle time will again be extended when the results of online editing are backed up to built in flash memory At this time the BKUP indicator on the front of the CPU Unit will flash and the progress will be displayed on the CX Programmer The maximum extensions to the cycle time are given in the following table During online editing During backup amsmax Kof cycle ime Cycle Time Monitor Time Be sure that the cycle time monitor time set in the PLC Setup is not exceeded when the program is rewritten as a result of online editing in MONITOR mode If the monitor time is exceeded a cycle time exceeded error will occur and CPU Unit operation will stop If this occurs switch to PROGRAM mode and then to MONITOR or RUN mode to restart operation If synchronous unit operation is being used an increase in the synchronous processing time caused by online edi
179. elp 18 x aka E EE EE a EA e T T E EET Ka JESE see m o a EEL lae a ae a a t e E SGA i er E E 40 45 25 te a x x 0 E NewProject S E NewPLc1 C31M Offline I Symbols GT 10 Table Settings qe Memory E 8 Programs 3 NewProgram1 00 A Symbols p Section1 END HAF Function Blocks F Average_calculation F Condition_check UF Operation_module FB Instance Viewer Program Name NewProgram1 Section Name Section1 Operation_module BOOL BOOL EN ENO average averaga value oft xi NewPLC1 UF Target_1_FB Operation_module 45F ConditionO1 Condition_check F sample Operation_module F ConditionO1 Condition_check 45F Average_FB Average_calculation Name Address or Value Comment DataType Address Comme Zl PLC Name Name Address _ Data Type Format FB Usage Valu BOOL H538 04 Conditi NewPLC1 sample 538 06 BOOL On Off Co Internal ConditionO1 FB Condition_check NewPLC1 sample H551 INT Signed Deci Internal ExecutionFlag Execution_Enable_Flag Execution_Flag Thickness_1 Thickness_2 Thickness_3 H538 05 H538 06 H538 07 H549 H551 H550 H538 04 BOOL On Off Co Note Variables can be Executi NewPLC1 _ sample Internal registered by dragging and dropping them in the Watch For Help press F1 When nesting this
180. end Ready Flag is ON IF P_SendEnableSCBPort1 TRUE THEN iProcess 0 END_IF END_CASE Related Auxiliary Address Description Area Flag Port 1 Send Ready A356 05 ON when sending is enabled in no protocol mode Flag Port 2 Send Ready A356 13 ON when sending is enabled in no protocol mode Flag For further information and precautions on related Auxiliary Area flags refer to the section on TXD Serial Com munications Instruction in the CS CJ series Instruction Reference Manual TXD_SCU Send String via Serial Port on Serial Communications Unit e Function Sends a text string from a serial port on a Serial Communications Unit SCU e Application TXD_SCU Send_string SCU_unit_number Serial_port Internal_logic_port e Conditions The serial communications mode of the serial port must be set to no protocol communications 194 Function Descriptions Appendix C e Arguments and Return Values Data ype Send_string STRING Specifies the text string to send SCU_unit_number INT UINT WORD Specifies the number of the Serial Communi cations Unit Serial_port INT UINT WORD 1 Serial port 1 Set ONO aseene OOOO Internal_logic_port INT UINT WORD 0 to 7 Internal logic port number specified merges ONT NORE Free tort eg pr aston e Example Serial Communications Unit SCU CPU Unit Unit No 0 Get Scene Number command READ Barcode reader Variables I I i BOOL P_DoSendData Variable to control
181. ers for the function block s I O The ability to reuse existing function blocks will save significant time when creating debugging programs reduce coding errors and make the program easier to understand Structured programs created with function blocks have better design quality and require less development time The I O operands are displayed as variable names in the program so the pro gram is like a black box when entering or reading the program and no extra time is wasted trying to understand the internal algorithm Many different processes can be created easily from a single function block by using the parameters in the standard process as input variables Such as timer SVs control constants speed settings and travel distances Coding mistakes can be reduced because blocks that have already been debugged can be reused Read protection can be set for function blocks to prevent programming know how from being disclosed The variables in the function block cannot be accessed directly from the out side so the data can be protected Data cannot be changed unintentionally The function block s I O is entered as variables so it isn t necessary to change data addresses in a block when reusing it Processes that are independent and reusable such as processes for individ ual steps machinery equipment or control systems can be saved as func tion block definitions and converted to library functions Function Blo
182. es Program Instance of function block definition A instance name sample a b C Right click and select Function Instance registered in global Biock Memory AGGIESS symbol table under instance name FM Instance Memory Dialog Box Inputs Name Type aa Name Type Address sample FB FunctionBlock1 N A Auto a BOOL W400 00 Outputs ft Name Type Address Instance name e BOL W40i 02 Addresses used for function block internal variables Checking the Status of The following procedure can be used to check the number of addresses allo Addresses Internally cated to variables and the number still available for allocation in the function Allocated to Variables block instance areas 1 2 3 1 Select the instance in the Ladder Section Window right click and select Memory Allocation Function Block SFC Memory Function Block SFC Memory Statistics from the PLC Menu 2 The Function Block SFC Memory Statistics Dialog Box will be displayed as shown below Check address usage here Function Block SFC Memory Stal x Memory Area _ i Required FB Non Retained 2 FB Retained FB Timer FB Counter SFC Bit The total number The number of of words in each The numb r words still available interface area Store already used Optimizing Function When a variable is added or deleted addresses are automatically re allocated Memory in the
183. es mow Move Find Addresses Source word Find Mnemonics amp Cut Destination Copy amp amp Paste Delete 2 z ma Function Block ladder generation 2 The following FB Variable Allocation Dialog Box will be displayed Internals Inputs Outputs Input Outputs Address Name Type 0 00 Start BOOL 0 Ho ww D D Setting BOOL 0 Ho 1 00 Error BOOL 0 No 0 01 Limit BOOL 0 Ho 0100 SutoGe WORD 0 Mo Set Co BOOL 0 No Aun RANI Cancel 92 Procedures Section 3 2 The addresses of the operands used in the instructions in the selected pro gram circuits will be automatically allocated as listed below depending on application conditions Application Application inside selected program circuits outside selected Used in Used in Used in input program circuits input output and output section section sections Not used Internal vari Internal vari Internal variable See note able able Used Input variable Output vari Input output vari able able Note Even if an address is allocated to I O it will be considered to be not used and converted to an internal variable if it is not used outside the selected circuits no matter where it is used inside the selected circuits Note Names will be automatically set for addresses without symbol names as fol lows AutoGen_address AT specifications will be automatically removed 3 9 6 Ch
184. es e g the data set for global variables may not be stable e Use internal variables when Auxiliary Area bits other than those pre registered to external variables are registered to global symbols and these variables are not specified as external variables e Use internal variables when specifying PLC addresses for another node on the network For example the first destination word at the re mote node for SEND 090 and the first source word at the remote node for RECV 098 e Use internal variables when the first or last of multiple words is speci fied by an instruction operand and the operand cannot be specified as an array variable e g the number of array elements cannot be spec ified XXV Application Precautions XXV Part 1 Function Blocks SECTION 1 Introduction to Function Blocks This section introduces the function block functionality of the CX Programmer and explains the features that are not contained in the non function block version of CX Programmer 1 1 Introducing the Function Blocks 20 00 ccc cece eee 4 1 1 1 Overview and Features 0 0 ccc cece eens 4 1 1 2 Function Block Specifications 0 0 000 eee eee 5 1 1 3 Files Created with CX Programmer Ver 6 0 or Later 8 1 1 4 Function Block Menus in CX Programmer Ver 5 0 Cal Later Versions h esan e Seco er thc eal teehee ny aor aE A 8 l 2 sPUNCHON BIOCKS eaer a e EE E A A lowes ea Sees 1 evel OUM so
185. eter to the first address CX Program mer version 7 0 or higher specify the first or last element in an internal array variable or use an external variable as described in 2 5 4 Array Settings for Input Output Variables and Internal Variables Program An input variable cannot be used to specify the address of an operand that specifies Instance for function block definition A the first or last address of multiple words For example the XFER BLOCK eee TRANSFER instruction cannot be used to p If the size of the data type in transfer 10 words from the address aa DATA_1 is 1 word the value beginning with DATA_1 to the address Doo100 DATA_1 roe aia D00100 is beginning with DATA_2 DATA_2 as the size of the data type in ZER DATA_2 is 2 words the value for the 2 words W500 and DATA_1 W501 is passed J DATA_2 The address can be specified but the address itself is not passed e Values are passed in a batch from the input parameters to the input vari ables before algorithm execution not at the same time as the instruction in the algorithm is executed Therefore to pass the value from a parame ter to an input variable when the instruction in the function block algorithm is executed use an internal variable or external variable instead of an input variable 57 Function Block Applications Guidelines Section 2 5 Passing Values from or Monitoring Output Variables Input O
186. etinPower_Stat Range Check OK Bit 0 01 wio Double click I O values can be monitored in the algorithm within the wo function block Range Check OK Bit Range Check NG Bit Bit RD ExplicitError 2 3 I A tutorial program a standard UK traffic light sequence 4 i an 1 a Red lied ane co lal r 3 If an array variable is used in a function block and a symbol is used for the array variable s arguments the present value cannot be monitored if that array variable is used as the operand of an input condition or special in struction In this case the input condition or instruction will be displayed in red SwoO n Swi 2 M04021 1 DATAIn 114 Procedures Section 3 2 Monitoring Variables of ST Programs within Instances With the CX Programmer Ver 6 1 and later versions it is possible to monitor the ST programs within an instance when monitoring the program To monitor I O bits and words I O Bit Monitor either double click the instance or right click the instance and select Monitor FB Instance from the pop up menu To return to the original instance right click in the ST program monitor window and select To Upper Layer from the pop up menu 0 ri i Function Block Name D YD_ThickSelectControl Instance Name StageA_D VDThickSelect The upper limit is 1 26mm the lower limit is 1 14mm 1 20mm 5 COPEPEEPEEEPELEEEL EEL EL DYDThickJudge AvgV
187. ew Variable Dialog Box will be displayed With special instructions a New Variable Dialog Box will be display for each op erand in the instruction New Variable x Name a Data Type i Cancel Usage Internal lt Advanced hitial Value FALSE x Retain Comment Set the data type and other properties other than the name 88 Procedures Section 3 2 The properties for all input variables will initially be displayed as follows e Usage Internal e Data Type BOOL for contacts and WORD for channel word e Initial Value The default for the data type e Retain Not selected 3 Make any required changes and click the OK Button 4 As shown below the variable that was registered will be displayed in the variable table above the program Untitled CX Programmer NewPLC1 FunctionBlocki FB Ladder File Edit Yiew Insert PLC Program Tools Window Help OSER SR Selo MBM OSEa 4 AR ASE a XQ Siz Ble R OseeEL amp lale ee i paml 4926 Bw we e fxi Name Datatype at initial Ret Commen NewPro aaa E ect NewPLC1 CJ1G H Offline at A Programs a NewProgram1 00 Symbols Instruction input Function block internal variable registered 5 Ifthe type or properties of a variable that was input are not correct double click the variable in the variable table and make the required corrections E Reference Information AT Settings Spe
188. except for STRING can be specified for an array variable as long as it is an internal variable e When entering an array variable name in the algorithm of a function block definition enter the array index number in square brackets after the vari able name The following three methods can be used to specify the index In this case the array variable is al e Directly with numbers for ladder or ST language programming Example a 2 e With a variable for ladder or ST language programming Example a n where n is a variable Note INT DINT LINT UINT UDINT or ULINT can be used as the vari able data type e With an equation for ST language programming only Example a o c where b and c are variables Note Equations can contain only arithmetic operators and An array is a collection of data elements that are the same type of data Each array element is specified with the same variable name and a unique index The index indicates the location of the element in the array A one dimensional array is an array with just one index number Example When an internal variable named SCL is set as an array variable with 10 elements the following 10 variables can be used SCL 0 SCL 1 SCL 2 SCL 3 SCL 4 SCL 5 SCL 6 SCL 7 SCL 8 and SCL 9 WORD variable WORD variable WORD variable WORD variable Specify SCL 3 to access this data element WORD variable WORD variable WORD varia
189. ey and select aaa registered earlier from the pull down menu in the New Contact Dialog Box Window H JO sman tme 2ean 45 84 20 RAR ArRR w m omy Fey a yy O arr a QQ JESE Blt R a n OSBGEL amp Cas a a a a lel E a e REDRA BOOL FALSE Controls execution of the F BOOL FALSE NewProject E NewPLC1 C1G H Offline aM Symbols T 10 Table jer Memory E KN Programs 3 NewProgram1 00 Si Symbols p Section1 END SUF Function Blocks F FunctionBlock1 45F FunctionBlock2 Internals Inputs Outputs Externals 2 2 2 New Contact 2 EAA Press the C Key and select aaa registered earlier from the pull down menu in the New Contact Dialog Box 2 Click the OK Button A contact will be entered with the function block inter nal variable aaa as the operand variable type internal Untitled CX Programmer NewPLC1 FunctionBlocki FB Ladder p 10 x File Edit View Insert PLC Program Tools Window Help lej x DEH RAR tB LAA B RAR RSA TODT S w as eQQ SESE Hew T EmA RA Fa as 2 i ESES NewProject S E NewPLc1 C31G H Offline Symbols GT 10 Table Settings jet Memory amp Programs ic 3 NewProgram1 00 Symbols HAF Function Blocks FunctionBlock1 Contact entered with function block internal variable aaa as operand The rest of the ladder program is input in exactly the same way as for stan dard programs with CX P
190. figuration Section 5 4 5 4 ST Language Configuration 5 4 1 Statements End of statement Ends the statement Sel Comment All text between and is treated as a comment Assign comment Assignment Substitutes the results of the expres sion variable or value on the right for ment state ment IF THEN ELSIF ELSE END_IF Control statements CASE ELSE END_CASE FOR TO BY DO END_FOR WHILE DO END_WHILE REPEAT UNTIL END_REPEAT the variable on the left Evaluates an expression when the condition for it is true Evaluates an express based on the value of a variable Repeatedly evaluates an expression according to the initial value final value and increment Repeatedly evaluates an expression as long as a condition is true Repeatedly evaluates an expression until a condition is true IF condition_1 THEN expression 1 ELSIF condition_2 THEN expression 2 ELSE expression 3 END_IF CASE variable OF 1 expression 1 2 expression 2 3 expression 3 ELSE expression 4 END_CASE FOR identifier initial_value TO final_value BY increment DO expression END_FOR WHILE condition DO expression END_WHILE REPEAT expression UNTIL condition END_REPEAT EXIT Stops repeated processing EXIT RETURN ST program RETURN Ends the ST task that is being exe cuted and executes the next task ST used in S
191. finition can be compiled to perform a program check on it Use the following procedure 1 2 3 Select the function block definition right click and select Compile from the pop up menu Alternately press the Ctrl F7 Keys The function block will be compiled and the results of the program check will be automatically displayed on the Compile Table Page of the Output Window NewProject NewPLC1 CI1G H Offline St Symbols a 10 Table 3 NewProgram1 00 I Symbols p Section1 END E F Function Blocks EF FunctionBlocki UF FunctionBlock2 WARNING Unused Function Block Instance This can be removed PLC Program Name NewPLC1 FunctionBlock2 FunctionBlock2 0 errors 1 warning 3 2 13 Printing Function Block Definition Use the following procedure to print function block definitions The programs have been checked with the program check option set to Unit Ver 3 0 id 4 gt Pi Compile A Find Report A Transfer Results of program check displayed 1 2 3 1 Double click the function block definition to be printed and with the vari able table and algorithm displayed select Print from the File Menu The following Target Print Rung Dialog Box will be displayed Target Print Rung x Target Print ALL Rung C Select Rung Start Rung No End Rung No j Header Footer Information First Page No 1 to 99999 fi H valid when Page number field is sele
192. formation is included An overview and features The system configuration Installation and wiring I O memory allocation Troubleshooting Use this manual together with the W394 Provides an outline of and describes the design installation maintenance and other basic operations for the CU series PLCs The following information is included An overview and features The system configuration Installation and wiring I O memory allocation Troubleshooting Use this manual together with the W394 oo SYSMAC CS CJ Series Describes programming and other methods to use the func CS1G H CPULILI EV1 CS1G H CPULILJH tions of the CS CJ series and NSJ series PLCs CJ1G CPULIL CJ1G H CPULILIH The following information is included CJ1H CPULILIH R CJ1G CPULILIP Programming CJ1M CPULILI NSJLI LILILIL B G5D Tasks NSJL_I LILILIL B M3D File memory Programmable Controllers Other functions Programming Manual Use this manual together with the W339 or W393 SYSMAC CS CJ Series Describes the ladder diagram programming instructions sup CS1G H CPULILI EV1 CS1G H CPULILIH ported by CS CJ series and NSJ series PLCs CJ1G CPULIL CJ1G H CPULIWIH When programming use this manual together with the Oper CJ1H CPULILIH R CJ1G CPULILIP ation Manual CS1 W339 or CJ1 W393 and Programming CJ1M CPUOO NSJO OOOO B Gsp Manual W394 NSJLJ LILILIL B M3D Programmable Controllers Instructions Reference Ma
193. function block s input variable or a constant when ST is being used in the function block s instance e Global variable or local variable name when ST is being used in an ST task or SFC action program D Omitted called function block definition s output variable name or constant E One of the following values depending on the ST program being used e Calling function block s output variable or constant when ST is being used in the function block s instance e Global variable or local variable name when ST is being used in an ST task or SFC action program Note When B and D are omitted as shown above C is moved to the B position and passed automatically in the order that values are registered in that variable table In contrast the values from the D position are automatically received at E in the order that values are registered in that variable table E Usage Use the function block call statement to call a function block definition ST or ladder language from an ST language program E Description 1 The following instance is registered in the internal or global variables in the variable table Internal variable element Content Example Name Any instance name Calcu_execute FUNCTION BLOCK _ FUNCTION BLOCK FB definition Selects the called func Calculation tion block definition 161 Statement Descriptions 162 Section 5 5 2 The values that will be passed between variables are specified within p
194. g Three Times Measurement Flag oe NewPLC1 CJ1H H Offline green_lamp BOOL 15 01 Work Green Lamp within tolerance I m7 Symbols margin REAL D6 Work Tolerance 1 Table and Unit Setup red_lamp BOOL 15 00 Work Red Lamp without tolerance o _ Sym bol table 6 ba Settings thickness1 REAL D1 Work Measurement Value 1 t3 a AA eee REAL D2 Work Measurement Value 2 2 ant Work_plece_Measurement 00 thickness3 REAL D3 Work Measurement Value 3 St Symbols E Default_Setting p Measurement average thickness1 thickness2 thickness3 3 0 IF flag 3 THEN IF average lt criterion margin THEN red_lamp TRUE ELSIF average criterion margin THEN TRUE eee en e ST Editor Window green_lamp TRUE END IF END_IF amp END E ER Average_Yalue_Calculation 01 I Symbols z a Result _Display 02 2 Symbols amp LED Display END J Function Blocks Project f For Help press F1 NewPLC1 Net 0 Node 0 Offline If the symbol table with the registered variables is displayed while inputting the ST program it is easy to reference the variable names for program ming Note 1 Tabs or spaces can be input to create indents They will not affect the al gorithm 2 The display size can be changed by holding down the Ctrl Key and turn ing the scrolling wheel on a wheel mouse 3 When an ST language program is input or pasted into the ST input area syntax keywords reserved
195. gal X 123_ There is no numeral after underscore X 1__23 The underscore is followed immediately by another underscore X 2 301 Y 8 90 A numeral that cannot be used with binary or octal values has been used Note The underscore can be inserted between numerals to make them easier to read Placing 2 8 and 16 at the beginning of the numeral expresses the numerals as binary octal and hexadecimal values respectively Invalid Literal Value The numeric value is illegal X 1e2 an index was used for a numeric value that was not a REAL data type Note e indicates an exponent of 10 Invalid array index A numeric equation with a Array Index 10 ndex is a WORD type variable non integer type operation result or a non integer vari able has been specified in the array index 183 Structured Text Errors Appendix B Error Message Cause oferor Erampe Invalid constant A numeric equation with a CASE A OF A is a REAL type variable non integer type operation 1 X 1 result or a non integer vari S able or numeric value has 2 X 2 been specified in the integer END_CASE equation of a CASE state ment Invalid expression The numeric equation is ille WHILE DO The WHILE statement does not contain a gal For example the integer condition equation equation or condition equation y y 4 is illegal or has not been spec eae ified in the synt
196. gram 1 automatic operation Program 2 manual operation Product A counter Product B counter D100 Product B counter Reading the same product s counter value at different locations Reading different products counter values Algorithm calculating counter value is the same D200 Program 1 3 Instance A ES Instance A KN I O variables Gn Internal ho variables A f FB definition Instance B E D N E Sd l S Instance B I O variables Internal mrerrereeprerrppeperpeppepperpeppepeerropsepsepreeppepperpeppepperpepeepeeppeppeprereeeser f variables Program 2 foo Instance A Ho ey Use the same internal variables _ Use different internal variables 2 3 2 Parameter Specifications The data that can be set by the user in the input parameters and output parameters is as follows tem Applicable data Input parameters Values See note 1 addresses and program symbols glo bal symbols and local symbols See note 2 Note The data that is passed to the input variable from the parameter is the actual value of the size of the input variable data An address itself will not be passed even if an address is set in the parameter Input parameters must be set If even one input param eter has not been set a fatal error will occur and the input parameters will not be transferred to the actual PLC Output parameters Addresses program symbols global symbols local sym
197. gram contains function blocks however downloading in task units is not possible uploading is possi ble 3 2 18 Monitoring and Debugging Function Blocks Monitoring I O in Ladder Programs within Instances Note The following procedures can be used to monitor programs containing func tion blocks With the CX Programmer Ver 6 0 and later versions it is possible to monitor the status of bits and content of words in a ladder program within an instance when monitoring the program To monitor I O bits and words I O Bit Monitor either double click the instance or right click the instance and select Monitor FB Ladder Instance from the pop up menu At this point it is possible to monitor bits and words change PVs force set reset bits and perform differ entiation monitoring 1 It is not possible to perform online editing or change timer counter SVs 2 Changing PVs and force setting resetting bits is not possible for input output variables Also if data structures are used as input output vari ables you cannot display forced set reset information key icons for any BOOL members of those data structures 113 Procedures Section 3 2 u 0 i z 0 Program Name NewProgram1 r3 0 Function Block Name Dnet211_GetinPower_Stet A Read Input Power Status Reads the input power status from slaves on DeviceNet Section Name Section1 Instance Name sample01 sample Check input data range _Dnet211_G
198. gvalue 0 0000000 Flo Input 2 304856e 041 Float Inp S Symbol IF Kavgraue eee AND 4vgValue LoyyLimit THEN Arrau 0 0000000 Flog UpLimit 0 0000000 Float Avge 53 gt Result TRUE Result 0 10 Table and Unit Setup ELSE Select the variable in the ST Settings Result FALSE Result 0 variable monitor window E Memory card END IF right click and select Copy EB Error log PLC Clock lt Memory Programs E S OVKIBO P xfl1 00 Stop Symbols 8 Section1 END S F Function Blocks EF ActuatorControl F AvgValue_ThresholdChec EF DVD_ThickSelectControl F WorkMoveControl_LSONc 4 b Project 4 gt 4 2 I PLC Name Name Address Data Type Format FB Usage Value Yalue B Comment l NewPLC1 Stages Dhi HS22 02 BOOL On OFF Conta Output 0 OK or NewPLC1 StageA DVDThi H533 REAL Floating Point Internal 0 000 0 000 0 Right click in the Watch Window and select Paste LG 4 PP sheet A For Help press F1 Procedures Section 3 2 Checking Programs within Use the following procedure to check the program in the function block defini Function Block Definitions tion for an instance during monitoring 1 2 3 Right click the instance and select To Lower Layer from the pop up menu The function block definition will be displayed Monitoring Instance Use the following procedure to monitor instance variables Variables in the Watch Window 1 2 3 1 Select View
199. he pop up menu At this point it will be possible to O status of a function block instance s ladder change PVs and force set reset bits diagram Note Online editing is not supported Password Protection of Function Blocks Previous version Ver 6 0 New version Ver 6 1 The function block properties could be set to The following two kinds of password protection can be set e Password protection restricting both reading and writing e Password protection restricting writing only prevent the display of a function block defini tion s program 27 Version Upgrade Information Section 1 6 Version 5 0 to 6 0 Upgrade Information Nesting Function Blocks Previous version Ver 5 0 New version Ver 6 0 A function block could not be called from another A function block can be called from another function block nested Up function block Nesting not supported to 8 nesting levels are supported The languages of the calling function block and called function block can be either ladder language or ST language The nesting level relationship between function blocks can be displayed in a directory tree format When function blocks are nested just one Function Block Library file cxf extension is stored for the calling func tion block and its called nested function block definitions I O Bit Monitor Support for Ladder Programs in Function Blocks Previous version Ver 5 0 New version Ver 6 0 The I
200. iables Meade A B C D Mgasage E F G H STRING Message STRING Message2 STRING Result Result INSERT Message1 Message2 2 ABEFGHC is stored in the Result variable WDG gt DELETE Delete Characters e Function Deletes the specified number of characters starting from the specified position of the specified text string e Application Return_value DEL Source_string Number_of_characters Position e Arguments and Return Values C Variable name Datatype Desorption STRING Specifies the text string from which to delete characters Number_of_characters INT UINT Specifies the number of characters to delete Position INT UINT Specifies the position from which to delete characters The first character is position 1 e g position 1 is A in message 1 in the fol lowing illustration Return_value STRING Returns the text string with the specified number of characters deleted 189 Function Descriptions Appendix C e Example Variables sss Tale ic ole Fla H STRING Message1 STRING Result Result DEL Message1 4 2 AFGH is stored in the Result variable Palee REPLACE Replace Characters e Function Replaces the specified number of characters starting from the specified position of the specified text string e Application Return_value REPLACE Source_string Replace_string Number_of_characters Position e Arguments and Return Va
201. iables to parameters just after processing the al gorithm If it is necessary to read or write a value within the execution cy cle of the algorithm do not pass the value to or from a parameter Assign the value to an internal variable and use an AT setting Specified address es N Caution If an address is specified in an input parameter the values in the address are passed to the input variable The actual address data itself cannot be passed N Caution Parameters cannot be used to read or write values within the execution cycle of the algorithm Use an internal variable with an AT setting specified addresses Alternatively reference a global symbol as an external variable Using Input Output Variables In Out When using an input output variable set the address for the input parameter A constant cannot be set The address set for the input parameter will be passed to the function block If processing is performed inside the function block using the input output variable the results will be written to I O starting at the address set for the size of the variable Program Instance of function block definition A Automatically set Input D200 Output D200 Address passed Address passed a changed by function block processing Variable a Processing is performed inside the function block using variable a The resulting value is written to I O memory for the size of variable a starting at ad
202. ined area Memory Area Start Address EndAddess Size FB Non Retained H512 H1407 896 FB Retained H1408 H1535 128 Cancel FB Timer T3072 T4095 1024 Edit FB Counter C3072 C4095 1024 _ SFC Bit Share with F Default SFC Word Share with F ahi Advanced Retained area Timer area Counter area V Share SFC with FB Merhory First Last Size address address The non retained and retained areas are set in words The timer and counter areas are set by time and counter numbers The default values are as follows CJ2 series CPU Units FB Instance Default value Applicable memory Area Start address End address Size aleas Non Retain H512 H1407 896 CIO WR HR DM EM See note H1408 H1535 HR DM EM See note Timers raor Tas 1024 Counters c30 cages 1024 Note Force setting resetting is enabled when the following EM banks are specified CJ2H CPU68 EIP CS CJ series CPU Units Ver 3 0 or Later and NSJ Controllers FB Instance Default value Applicable memory Area Start address End address cs areas Non Retain H512 See H1407 See CIO WR HR DM EM See notes 1 note A note 2 and 3 Retain See H1408 See H1535 See ee DM EM note 1 note 2 note 2 Timers T3072___ T4095 all Counters C3072 C4095 1024 Note 1 Bit data can be accessed even if the DM or EM Area is specified for the non retained area or retained area 102 Procedures Sec
203. ing string process processing text strings and display messages in ST programming ing instructions data conversion instructions inside function blocks and serial communications instructions e Functions are also supported for sending and receiving text strings Note The user can use the PLC memory func This enables easily processing no protocol communications using ST tion of the CX Programmer to input text programming in functions blocks without being concerned with ASCII strings in I O memory The data size in O Codes memory however must be considered Support for Input Output Variables e Input output variables cannot be used in func e Input output variables can be used in function blocks tion blocks Only input variables internal vari e Input output variables can be specified as arrays ables and output variables can be used e Addresses are passed from input parameters to input variables e Arrays cannot be specified for input variables instead of values This enables using input output variable arrays e Values are passed from input parameters to inside function blocks to enable easily passing large amounts of data input variables to function blocks using the input parameters 26 Version Upgrade Information Section 1 6 Version 6 0 to 6 1 Upgrade Information Support for NSJ series The PLC model device type can be set to NSJ and the CPU type can be NSJ Controllers set to the G5D Support for FQM1 U
204. input variables output variables and input output variables These areas are known as the function block instance areas and the user must specify the first addresses and sizes of these areas The first addresses and area sizes can be specified in 1 word units When the CX Programmer compiles the function it will output an error if there are any instructions in the user program that access words in these areas E Function Block SFC Memory Allocation Start Address End Address Size ok H512 H1407 B96 FB Retained H1408 H1535 128 ala FB Timer T3072 T4095 1024 p FB Counter C3072 C4095 1024 2 SFC Bit Share with F Default SFC Word Share with F _Defaur Advanced M Share SFC with FE Memory Instance Specifications Note Note Section 2 3 CJ2 series CPU Units FB Instance Default value Applicable memory Area Start address End address Size areas Non Retain H512 H1407 896 CIO WR HR DM EM See note H1408 H1535 HR DM EM See note Timers roz rws joz Counters C3072 C4095 1024 Force setting resetting is enabled when the following EM banks are specified CJ2H CPU64 EIP CPU65 EIP EM bank 3 CJ2H CPU66 EIP EM banks 6 to 9 CJ2H CPU67 EIP EM banks 7 toE CJ2H CPU68 EIP EM banks 11 to 18 CS CJ series CPU Units Ver 3 0 or Later and NSJ Controllers FB Instance Applicable memory
205. is example an array receives the FREAD instruction s read data operand D e Variable table Input output variable or internal variable data tyoe WORD array setting with 100 elements variable names read_data 0 to read_data 99 e Data Settings and Internal Function Block Processing e Input output variables Set the input parameter to the address of the first word in the read data example D200 FREAD omitted omitted omitted read_data 0 e Internal variables FREAD omitted omitted omitted read_data 0 A two element array can be used to store the result from a ladder program s SIGNED BINARY DIVIDE instruction The result from the instruction is D quotient and D 1 remainder This method can be used to obtain the remain der from a division operation in ladder programming When ST language is used it isn t necessary to use an array to receive the result of a division operation Also the remainder can t be calculated directly in ST language The remainder must be calculated as follows Remainder Dividend Divisor x Quotient 2 5 5 Specifying Addresses Allocated to Special I O Units Note 1 2 3 Use Index Registers IRO to IR15 indirectly specified constant offset to spec ify addresses allocated to Special I O Units based on the value passed for the unit number as an input parameter within the function block definition as shown in the following examples For details on using Index Reg
206. is manual is intended for the following personnel who must also have knowledge of electrical systems an electrical engineer or the equivalent e Personnel in charge of installing FA systems e Personnel in charge of designing FA systems e Personnel in charge of managing FA systems and facilities General Precautions N WARNING The user must operate the product according to the performance specifica tions described in the operation manuals Before using the product under conditions which are not described in the manual or applying the product to nuclear control systems railroad systems aviation systems vehicles combustion systems medical equipment amuse ment machines safety equipment and other systems machines and equip ment that may have a serious influence on lives and property if used improperly consult your OMRON representative Make sure that the ratings and performance characteristics of the product are sufficient for the systems machines and equipment and be sure to provide the systems machines and equipment with double safety mechanisms This manual provides information for programming and operating the product Be sure to read this manual before attempting to use the product and keep this manual close at hand for reference during operation It is extremely important that a PLC and all PLC Units be used for the speci fied purpose and under the specified conditions especially in applications that can direct
207. is necessary to receive a value from an external variable change the variable inside the function block and then return the result to the ex ternal variable use an input output variable 2 When the instance is executed input values are passed from parameters to input variables before the algorithm is processed Consequently values cannot be read from parameters to input variables within the algorithm If it is necessary to read a value within the execution cycle of the algorithm do not pass the value from a parameter Assign the value to an internal variable and use an AT setting specified addresses Alternatively refer ence the global symbol as external variables Initial Value Initial values can be set for input variables but the value of the input parame ter will be enabled the input parameter value will be set when the parameter for input variable EN goes ON and the instance is executed Note The input parameter setting cannot be omitted when using the CX Programmer EN Enable Variable When an input variable is created the default input variable is the EN variable The instance will be executed when the parameter for input variable EN is ON E Output Variables Output variables pass return values from the instance to external applications The output variables are displayed on the right side of the instance After the instance is executed the value of the output variable is passed to the specified parameter
208. isters in function blocks refer to 2 5 6 Using Index Registers Examples Example 1 Specifying the CIO Area within a Function Block Same for DM Area Special I O Units Variables Use the unit number as an input variable and specifying the first allocation address as an internal variable with the AT set to ClO 2000 Programs Use the following procedure 1 Multiply the unit number input variable by amp 10 and create the unit num ber offset internal variable DINT data type 2 Use the MOVR 560 MOVE TO REGISTER instruction to store the real O memory address for the first allocation address internal variable AT CIO 2000 in the Index Register e g IRO 3 Add the unit number offset to the real I O memory address within the Index Register e g IRO Example 2 Specifying the Designated Bit in the CIO Area e g ClO Word n a Bit b Programs Use either of the following methods 61 Function Block Applications Guidelines Section 2 5 e Word addresses Specify the constant offset of the Index Register using an indirect specification e g a IRO e Bit addresses Specify an instruction that can specify a bit address within a word e g amp b in second operand of SETB instruction when writing and TST instruction when reading Example Special I O Units aE 1 Specify the first CIO Area word n n CIO 2000 unit number x 10 Instance for function block definition A T Weed constants Unit
209. istics Function Block Instance Address Optimize Func Function Block Invocation tion Block SFC Function Block Parameter PLC Memory Program Online Edit Send Change Transfer FB Source Sets the range of addresses function block instance areas internally allocated to the selected instance s variables Memory Function Checks the status of the addresses internally allocated to the selected instance s variables Checks the addresses internally allocated to each variable in the selected instance Optimizes the allocation of addresses internally allocated to variables Starts online editing of a function block Transfers changes made during online editing of a function block Cancels changes made to a function block being edited online Transfers only the function block source Release FB Online Edit Forcefully releases the access rights for function block SFC and ST online editing held by another user Access Rights Introducing the Function Blocks Section 1 1 Tools Simulation Break Point Sets or clears a break point Set Clear Break Point Break Point Clears all break points Clear All Break Point Mode Run Executes continuous scanning Sets the ladder execution Monitor Mode engine s run mode to MONITOR mode Mode Stop Sets the simulator s operation mode to PROGRAM mode Program Mode Mode Pause Sa Pauses simulator operation Step Run Sa Executes just one step of
210. it model CJ2H CJ2H CPU68 67 66 65 64 68 EIP 67 EIP 66 EIP 65 EIP 64 EIP CS1G H with unit version 4 0 CS1G CPU45H 44H 43H 42H 4 2 2 Specifications tem SSSSSCS C C S ecification Program languages that can SFC ladder or ST These programs can be combined be allocated to tasks freely ST program units Task units Up to 288 tasks 82 cyclic tasks and 256 extra cyclic tasks Tasks to which ST programs Cyclic tasks and extra cyclic tasks can be allocated Online editing ST chart editing Note The user can select standard mode ST source code included in transfer or quick mode ST source code not included in transfer Array variables Array variables can be used in SFC ladder and ST programs 133 CX Programmer Specifications Section 4 2 134 SECTION 5 Structured Text ST Language Specifications This section provides specifications for reference when using structured text programming as well as programming examples and restrictions 5 1 Structured Text Language Specifications 000s 136 5 1 1 Overview of the Structured Text Language 136 52 Data Types Usedin ST Procrams se dak eh hae eG eae ees ley Jl Basic Data Types erreinuetan Sas Wea Bee a Pe 137 S 2 2 Denvative Data Types ss 2 vaca svar chs cacunchevatautaehends 137 5 3 Inputting SE Programs 144204 5exensee dos ie a eso ees bees au ses 138 SoA SMARU 5 a0 agate ee hed ee ete ar ee oes Meee ees 138 5 3 2
211. ith the following manuals SYS MAC CS Series Operation Manual W339 SYSMAC CJ Series Operation Manual W393 SYSMAC CS CJ Series Programming Manual W394 and NS V1 V2 Series Setup Manual V083 xiii FQM1 Series Manuals Unit Version 3 0 or Later Refer to the following manuals for specifications and handling methods not given in this manual for FQM1 Series unit version 3 0 FQM1 CM002 MMP22 MMA22 Cat No Models Name pion SS FQM1 CM002 FQM1 Series Provides the following information about the FQM1 series Modules FQM1 MMP22 Operation Manual unit version 3 0 FQM1 MMA22 Overview and features Designing the system configuration Installation and wiring I O memory allocations Troubleshooting and maintenance FQM1 CM002 FQM1 Series Individually describes the instructions used to program the FQM1 FQM1 MMP22 Instructions Use this manual in combination with the FQM1 Series FQM1 MMA22 Reference Manual Operation Manual 0012 when programming CP series PLC Unit Manuals Refer to the following manuals for specifications and handling methods not given in this manual for CP series CPU Units Gat No Models neme Desmipion O W450 IL SYSMAC CP Series Provides the following information on the CP series CP1H PLCs e Overview Features Operation Manual e System configuration e Mounting and wiring e O memory allocation e Troubleshooting Use this manual together with the CP1H CP1L Programmable
212. k Properties Dialog Box will be displayed Click the Pro tection Tab and click the Set Button Function Block Properties _ x General Protection Comments Memory Protection Status 3 The Function Block Protect Setting Dialog Box will be displayed Select the protection level in the Protection Type Field Function Block Protection S Input 4 password after selecting a protection type Protection Type Prohibit writing and display Prohibit writing only Password i Password confirmation Set Cancel 5t The following table shows the functions restricted in each protection level ProtectType sid ProtectType sid Prohibit writing and Prohibit writing display Displaying function block contents Displaying function block contents block contents Prohibited Allowed Printing function block contents Editing function block contents _ Editing function block contents _ block contents Prohibited Saving loading to function block Allowed Pronet _ library files 4 Input the password in the Password Field of the Function Block Protect Setting Dialog Box Input the same password again in the confirmation field to verify the password and click the Set Button The password can be up to 8 characters long and only alphanumeric char acters can be used 5 When a function block definition has been password protected the func tion block definition s icon will change to indicate that it is prote
213. les These address or constants are called parameters The addresses used by the variables themselves are allocated automatically by the CX Pro grammer for each program 11 Function Blocks Section 1 2 With the CX Programmer a single function block can be saved as a single file and reused in other PLC programs so standard processing functions can be made into libraries Program 2 Copy of function block A Function block A Program 1 _ Copy of function block A Variable Output Standard gt ae i program section lt lt written with variables PNA X Input Variable Variable Output a A Define in advance Ns Insertin program N Set Set N Copy of function block A Save function block as a file Convert to library function Variable Variable Output Function block A Reuse VY gt To another PLC program 1 2 2 Advantages of Function Blocks Structured Programming Easy to read Black Box Design Use One Function Block for Multiple Processes Reduce Coding Errors Black boxing Know how Data Protection Improved Reusability with Variable Programming Creating Libraries 12 Function blocks allow complex programming units to be reused easily Once standard programming is created in a function block and saved in a file it can be reused just by placing the function block in a program and setting the paramet
214. les supported in function blocks tion block s execu 2 The value of the input parameter will be given Pre defined sym bols registered in advance as vari ables in the CX Programmer such as Condition Flags and some Auxil lary Area bits tion status Note E Input Variables Input variables pass external operands to the instance The input variables are displayed on the left side of the instance The value of the input source data contained in the specified parameter just before the instance was called will be passed to the input variable 32 Function Block Specifications Section 2 1 Note The value of the parameter specified as the input value of DO is passed to the instance s input variable PV Example Algorithm Body P_On SIGN IN16 tmp L IN32 tmp OUT32 ADD_INT_DINT EN Variable table Usage Name Internal tmp Input EN IN16 is an INT variable so the content of D100 is used IN32 is a DINT variable so the content of D200 and D201 is used Type DINT BOOL Input IN16 INT Input IN32 DINT Output ENO BOOL Output OUT32 DINT Name Initial value Retained Comment iy BOOL ti lt C C C COC FALSE t lt tsCSCS Controls execution of the Function Block IN16 INT IN32 DINT 0 Internals Inputs Outputs Externals 1 The same name cannot be assigned to an input variable and output vari able If it
215. local node for RECV 098 e When the instruction operand specifies the first or last of multiple words and an array variable cannot be specified for the operand e g the num ber of array elements cannot be specified 2 5 4 Array Settings for Input Output Variables and Internal Variables Using Array Variables to Specify First or Last Word in Multiword Operands Note 1 2 3 When specifying the first or last of a range of words in an instruction operand see note the instruction operates according to the address after AT specifi cation or internal allocation Therefore the variable data type and number of elements for the variable are unrelated to the operation of the instruction Al ways specify a variable with an AT setting or an array variable with a number of elements that matches the data size to be processed by the instruction Some examples are the first source word or first destination word of the XFER 070 BLOCK TRANSFER instruction the first source word for SEND 090 or control data for applicable instructions For details refer to 2 6 Precautions for Instructions with Operands Specifying the First or Last of Multiple Words Use the following method to specify an array variable When using input output variables set the input parameter to the first address of multiple words Use the following procedure for internal variables 1 Prepare an internal array variable with the required number of elements
216. lock defini tion or multiple function block definitions together Use the following procedure to clear the password protection on an individual function block definition In the project workspace select the function block definition right click and select Properties from the pop up menu Alternately select Proper ties from the View Menu The Function Block Properties Dialog Box will be displayed Click the Pro tection Tab and click the Release Button The Function Block Protection Release Dialog Box will be displayed Input the password in the Password Field and click the Release Button If the password was correct the protection will be cleared and the function block definition s icon will change to a normal icon in the project work space Use the following procedure to clear the password protection on two or more function block definitions at the same time Select Function Blocks in the project workspace right click and select Function Block Protection Release from the pop up menu 111 Procedures Section 3 2 2 The Function Block Protection Collective Release Dialog Box will be dis played Select the names of the function blocks that you want to be unpro tected input the password and click the Release Button 3 Ifthe password input matches the selected function blocks passwords the protection will be cleared for all of the function block definitions at once 3 2 15 Comparing Function Blocks It is
217. lock definition symbol table at the same time as copying the cir cuits as the symbol name AutoGen_Address and I O comments as Com ment This function enables programmed circuits to be easily reused in function blocks as addresses and I O comments The prefix AutoGen_ is not added to Index Registers IR and Global Data Registers DR and they cannot be registered in the original global symbol table Automatically generate symbol name Option Not Selected in Symbols Tab under Options in Tools Menu Addresses and I O comments are not registered in the function block defini tion variable tables Addresses are displayed in the operand in red I O com ments will be lost Double click on the instruction and input the symbol name into the operand Index Registers IR and Data Registers DR however do not require modifi cation after pasting and function in the operand as is The user program symbol is automatically registered in the internal variables of the function block definition variable table This operation however is sub ject to the following restrictions Addresses Symbol addresses are not registered Use AT settings to specify the same address Symbol Data Types The symbol data types are converted when pasted from the user program into the function block definition as shown in the following table Symbol data type in user program Variable data type after pasting in function block program CHANNEL WORD NUMB
218. lock from which to create an instance and click the OK Button Dee A SQ sBa VSe aseB CV lasses Lu BAR RF R DTP Ss w a Q Q SE seel hre osese sel lllae alas BIBER EE RAPA S s pE i pe n a Jx Program Name NewProgram1 NewProject EP NewetcitcneH Offline at lissint Press F Key with cursor here Symbols ai gt 10 Table pitttttt g atttttttttt A 3 Settings rat G Memor j j A 0 e ye Following dialog Input the instance name EA Noup box is displayed Q amp END F Function Blocks UF FunctionBlock1 FB Instance FB Definition FunctionBlock1 Select the function block from which to create an instance As an example set the instance name in the FB Instance Field to sample set the function block in the FB Definition Field to FunctionBlock1 and click the OK Button As shown below a copy of the function block definition called FunctionBlock1 will be created with an instance name of sample Untitled CX Programmer NewPLC1 NewProgram1 Section1 Diagram 5 x File Edit View Insert PLC Program Tools Window Help lj x Dee RIGA s BeS Oct OES OvViiASSA LUBAR REA DTTT tS wlae X Sli Hle m R a muy o oE gL S 8 ala a tat ll a a a DARAT s EEH 415 B ol g l jla x jo Program Name NewProgram1 NewProject 0 El aaa eee Offline Pa Section Name Section1 aloe sample_ Instance name Memory Functions Function
219. luated again This process is repeated If the condition is false the expres sion is not executed and the condition evaluation ends E Precautions e WHILE must be used in combination with END_WHILE e Before executing the expression if the condition equation is false the pro cess will end without executing the expression e Statements that can be used in the expression are assignment state ments IF CASE FOR WHILE or REPEAT e Multiple statements can be executed in the expression Be sure to use a semicolon delimiter between multiple statements in an expression e The condition can also be specified as a boolean variable BOOL data type only rather than an equation E Examples Example 1 The value exceeding 1000 in increments of 7 is calculated and substituted for variable A Az 0 WHILE A lt 1000 DO A A 7 END WHILE 157 Statement Descriptions REPEAT Statement 158 Section 5 5 Example 2 While X lt 3000 the value of X is doubled and the value is substi tuted for the array variable DATA 1 The value of X is then multiplied by 2 again and the value is substituted for the array variable DATA 2 This process is repeated ges ela WHILE X lt 3000 DO X X 2 DATA n X n n 1 END WHIE E Summary This statement is used to repeatedly execute an expression until a specified condition is true E Reserved Words REPEAT UNTIL END_REPEAT E Statement Syntax REPEAT lt expression gt
220. lue Select the initial value of the variable at the start of oper ation e Retain Select if the value of the variable is to be maintained when the power is turned ON or when the operating mode is changed from PROGRAM or MONITOR mode to RUN mode The value will be cleared at these times if Retain is not selected 85 Procedures Section 3 2 Note 86 Input the name of the function block variable The default data type is BOOL x Change as required K Type of variable to register T _ i e the sheet ata Type zgi Initial value Usage Input Initial Value FALSE e Betsin Comment Select to maintain value for power interruptions Note a For user defined external variables the global symbol table can be browsed by registering the same variable name in the global symbol table b External variables defined by the system are registered in the ex ternal variable table in advance For example input aaa as the variable name and click the OK Button As shown below a BOOL variable called aaa will be created on the Inputs Sheet of the Variable Table Untitled CX Programmer NewPLC1 FunctionBlock1 FB Ladder xalxi File Edit View Insert PLC Program Tools Window Help l x a XA Se sleet R aa L o a E L amp lllae a la a a lla e E DARAS oh 2p El BB 20 4s lxi Name Datatype aT Initial value Retai i NewProject ROQ
221. lues Variable name Datatype Deseription O Source_string STRING Specifies the text string in which to replace characters Replace_string STRING Specifies the replace text string Number_ ee characters INT a Specifies the number of characters to be ae hinaaenianell INT UINT Specifies the position from which to replace characters The first character is position 1 e g position 1 is A in mes sage 1 in the following illustration Return_value STRING Returns the text string with the characters replaced e Example Variables meade pa s c o E Fje H Message x y Z STRING Message1 STRING Message2 Result REPLACE Message1 Message2 2 3 STRING Result ABXYEFGH is stored in the Result variable wow a e BEL F G He FIND Find Characters e Function Finds the first occurrence of the specified text string in another text string and returns the position If the text string is not found O is returned e Application Return_value FIND Source_string Find_string e Arguments and Return Values Variable name Data type Description O STRING Specifies the text string to search Find_string STRING Specifies the text string to find Return_value Returns the position of the first occurrence of the find text string The first character is position 1 e g position 1 is A in message 1 in the fol lowing illustration 190 Function Descriptions e Example Appendix C
222. ly or indirectly affect human life You must consult with your OMRON representative before applying a PLC System to the above mentioned appli cations Safety Precautions N WARNING Caution Confirm safety sufficiently before transferring I O memory area status from the CX Programmer to the actual CPU Unit The devices connected to Output Units may malfunction regardless of the operating mode of the CPU Unit Caution is required in respect to the following functions e Transferring from the CX Programmer to real I O CIO Area in the CPU Unit using the PLC Memory Window e Transferring from file memory to real I O CIO Area in the CPU Unit using the Memory Card Window Variables must be specified either with AT settings or external variables or the variables must be the same size as the data size to be processed by the instruction when specifying the first or last address of multiple words in the instruction operand 1 If anon array variable with a different data size and without an AT setting is specified the CX Programmer will output an error when compiling 2 Array Variable Specifications Application Precautions Caution Caution Caution Caution e When the size to be processed by the instruction operand is fixed The number of array elements must be the same as the number of ele ments to be processed by the instruction Otherwise the CX Programmer will output an error when compiling e When
223. ms and other processing can be written as ladder or SFC programs Note Structured text is supported only by CS CJ series CPU Units with unit version 4 0 or later It is not supported by CP series CPU Units Comparison of Function Block Definitions and ST Programs Function block definitions could not be com e Function block definitions can be compared With this capability it is pared easy to check for differences in function block definitions in programs e ST programs can also be compared 25 Version Upgrade Information Section 1 6 Version 6 1 to 7 0 Upgrade Information Convenient Functions to Convert Ladder Diagrams to Function Blocks Ladder programming can be copied into a func One or more program sections can be selected from the program and tion block definition to create a function block then Function Block ladder generation selected from the menu to The symbols and addresses in the ladder pro automatically create a function block definition and automatically allo gramming however have to be checked and cate variables according to symbols and addresses in the program sec input variables internal variables and output tions Allocations can later be changed as required This enables variables have to be identified and manually reg legacy programming to be easily converted to function blocks istered Online Function Block Editing Function block definitions i e the algorithms The algorithms an
224. ms function blocks or SFC e ST programs used in function block instances Refer to Part 1 Function Blocks in this manual e ST programs used in SFC Refer to the CX Programmer Operation Manual SFC W469 The ST Structured Text language is a high level language code for industrial controls mainly PLCs defined by the IEC 61131 3 standard The standard control statements operators and functions make the ST language ideal for mathematical processing that is difficult to write in ladder programming The ST language does not support all of the processing that can be written in lad der language The ST language supported by CX Programmer Ver 7 2 or higher conforms with the IEC 61131 3 standard and these ST language programs can be allo cated to tasks The PLC must be a CS CJ series CPU Unit with unit version 4 0 or later or a CJ2 series CPU Unit The following list shows the features of the ST language e There are many control statements available such as loop statements and IF THEN ELSE statements many operators such as arithmetic oper ators comparison operators and AND OR operators as well as many mathematical functions string extract and merge functions Memory Card processing functions string transfer functions and trigonometric func tions e Programs can be written like high level languages such as C and com ments can be included to make the program easy to read ST Program IF score gt setover TH
225. munications 198 Function Descriptions Appendix C e Arguments and Return Values Data type Storage_location STRING Specifies the storage location for the received text string Number_of_characters INT UINT WORD Specifies the number of characters to receive O to 255 an _unit_number INT UINT no Eer the number of the Serial Communica nt ae Eer Serial_port INT UINT WORD 1 oera port 1 a Internal_logic_port INT UINT WORD 0 to 7 Internal logic port number specified poreden MONEMO iene tora ral age ptaeston e Example Serial Communications Unit SCU CPU Unit Unit No 0 Message Value to read Serial port 2 E Barcode reader Variables i BOOL P_DoRecvData Variable to control receive function INT iProcess Process number STRING Message Variable to store received message 1 BOOL P_RXDU_Recv Status of Serial Communications Unit AT 1519 06 Unit No 0 Use serial port 2 BOOL P_CominstEnable Communications Port Enable Flag AT A202 07 Use port 7 Use the following Unit number O Serial port number 2 Logical port number 7 Receive data when P_DoRecvData is ON and iProcess is 0 IF P_DoRecvData TRUE AND iProcess 0 THEN iProcess 1 P_DoRecvData FALSE END_IF Execute receive processing according to process number CASE iProcess OF 1 Reception function executed if Communications Enabled Flag and Reception Completed Flag a
226. n equation to store a calcu lation result in a variable e Control statement Includes statements such as selection statements and iteration statements For details on each kind of statement refer to 5 4 ST Language Configura tion E Statement Contents Statements are composed of the following elements e Variables Refer to 5 4 2 Variables e Constants Refer to 5 4 3 Inputting Constants e Operators Refer to 5 4 4 Operators e Functions Refer to 5 4 5 Standard Functions and 5 4 6 OMRON Expan sion Functions E Example of a Control Statement Statement e g CASE Equation Configured using Configured using variables operators and operands equations etc Variable COLOR value is 1 Increment variable NofRed by 1 _ 4 ee es ee r 2 Increment variable NofBlue by 1 Neither 1 or 2 Increment variable NofOther by 1 Statement e g IF Comment Configured using variables A comment can be attached to a statement equations etc Configured using before the comment and after the comment Note In an ST program addresses are not input as actual I O memory addresses Variable names are used for all address inputs The addresses that use vari ables are set by the user For details on variable specifications and setting methods refer to the CX Programmer Operation Manual W446 136 Data Types Used in ST Programs Section 5 2 5 2 Data T
227. n wa is s reserveco Function Bloc kuse vedior Function Block u ved for Function Blo Kku Work Area Addresses used in the user program overlap with the instance areas Section Name END NewProgram 7 errors 0 warnings gt Th Compile Find Report A Transfer ll 4 1 If addresses are duplicated and an error occurs either change the function block instance areas or the addresses used in the user program FQM1 Flexible Motion Controllers FB Instance Applicable memory Sikes eaae lendar Sa wee See note Retain Timers T206 T255 Counters c26 C255 Bit data can be accessed even if the DM Area is specified for the non retained area CP series CPU Units FB Instance Default value Applicable memory Area Start address End address Size argas H512 H1407 CIO WR HR DM See note H1408 H1535 HR DM See note Counters C3072 C405 1024 103 Procedures Section 3 2 Note DM area of CP1L L PILL D0000 to D9990 D10000 to D31999 Not Provided D32000 to D32767 Provided 3 2 7 Checking internal Address Allocations for Variables The following procedure can be used to check the I O memory addresses internally allocated to variables 1 2 3 1 Select View Symbols Global 2 Select the instance in the global symbol table right click and select Func tion Block SFC Memory Address from the pop up menu Alternately select Memory Allocation Function Block SFC Memory Fu
228. n when the CPU Unit is operating in MONITOR mode This enables debugging or changing function block definitions even in systems that cannot be shut down such as systems that operate 24 hours a day To edit function block definitions online you must use CX Programmer version 7 0 or higher i e CX One version 2 0 or higher and a CS CJ series CPU Unit with unit version 4 0 or later See note or a CU2 series CPU Unit This function cannot be used for simulations on CX Simulator Note With CS CJ series CPU Units with unit version 3 0 online editing can be used to change peripheral aspects of function block instanc es e Parameters passing data to from instances can be changed in structions not in instances can be changed and instances can be deleted e Instances cannot be added instance names cannot be changed and changes cannot be made to variable tables or algorithms in function block definitions Editing Reserved Memory to Add an Internal Variable with Online Editing To add an internal variable to the variable table in a function block definition the memory required for the size of the variable being added must be reserved in advance This memory is separate from the internally allocated range for the variable in the function block instance area Use the following procedure to reserve memory before starting online editing of the function block 1 2 3 1 In the Workspace right click the function block definition to be edited
229. nction Block SFC Memory Address from the PLC Menu Example Instance name displayed in global variable table automatically registered Comment Name __ Datatype Address Value Rack Location Usage E jearple a l PWR PUF P_Step P_Output_ 4A Validate Symbols Edit Work WR Area Parameter Work Underflow UF Flag Work Step Flag Work Output OFF Bit Work Always ON Flag Work Always OFF Flag Work Overflow OF Flag t Insert Symbol Work Not Equals NE Flag Right click on the instance name and select Function Block Instance Address PLT i55 Li Work Less Than LT Flag P_Low_Bal amp cut Work Low Battery Flag P_LE E Work Less Than or Equals LE Flag PU 3 Co z i Work I O verification Error Flag PHR Work HR Area Parameter P_GT Delete Work Greater Than GT Flag P_GE Reusable File gt Work Greater Than or Equals GE Fle P_First_Cy Work First Task Execution Flag P_First_Cy Rename Work First Cycle Flag Work Instruction Execution Error ER PEQ AIRES Work Equals EQ Flag 3 The FB Interface Memory Dialog Box will be displayed Check the I O memory addresses internally allocated to variables here Example Addresses used internally for the input variables FB Instance Memory hstancel1 x Internals Inputs Outputs Close 104 Procedures Section 3 2 Method Used for Checking Addresses Internally Allocated to Variabl
230. ng Console the instances will all be dis played as question marks The instance names will not be displayed The following online editing operations cannot be performed on the user pro gram in the CPU Unit e Changing or deleting function block definitions variable table or algo rithm e Inserting instances or changing instance names Note The instance s I O parameters can be changed instances can be deleted and instructions outside of an instance can be changed Programming Restrictions Section 2 4 Error related Restrictions Prohibiting Access to FB Instance Areas Note lf a fatal error occurs in the CPU Unit while a function block definition is being executed ladder program execution will stop at the point where the error occurred Program FB definition Instance name Body LD P_On AAA Fatal error occurs here MOV AAA BBB In this case the MOV AAA BBB instruction will not be executed and output variable D200 will retain the same value that it had before the function block was executed To use a function block the system requires memory areas to store the instance s internal variables input variables output variables and input out put variables CJ2 series CPU Units Function block instance Initial value of Initial value Allowed data areas area start address of size Non retained H512 CIO WR HR DM EM See note Retained H1408 HR DM EM See note me fo i024 Comer e307
231. nit The new models of the FQM1 Flexible Motion Controller are now supported Version 3 0 i e the FQM1 CM002 Coordinator Module and the FQM1 MMA22 MMP22 Motion Control Modules Instance ST Ladder Program Simulation Function Previous version Ver 6 0 New version Ver 6 1 The CX Simulator could be used to execute a The Step Run Continuous Step Run Scan Run and Set Clear Break ladder program step Step Run execute steps Point functions can be executed as CX Programmer functions All of these functions can be used with ladder programs and ladder ST continuously Continuous Step Run execute a single cycle Scan Run and set I O break point programs in function blocks conditions Note The CX Simulator Ver 1 6 sold separately must be installed in order to use these functions Note I O break conditions cannot be set Improved Function Block Functions Monitoring ST Programs in Function Blocks Previous version Ver 6 0 New version Ver 6 1 The operation of ST programs within function The status of a function block instance s ST program can be monitored block instances could not be monitored while while monitoring the program monitoring the program online To monitor the ST program s status either double click the function It was possible to check the contents of a func block instance or right click the instance and select Monitor FB tion block definition s program and monitor the I Instance from t
232. nition in the buffer memory will be discarded and the program will not be changed In either case the program will return to the status in which function block definitions cannot be edited To edit another function block definition se lect FB online Edit Begin and begin the online editing procedure from the beginning Normal Mode In Normal Mode both the source code and object code are transferred to the CPU Unit Some time may be required for Normal Mode transfers because of the quantity of data that must be sent Other editing or transfer operations cannot be performed until the transfer has been completed Note The Display confirmation of FB online edit changes Option can be selected to display a confirmation dialog box after the source code has been transferred but just before updating the user memory in the CPU Unit Quick Mode In Quick Mode only the object code is transferred to the CPU Unit The source code is not transferred making Quick Mode faster than Normal Mode After transferring the object code either 1 select Program Transfer FB Source to transfer the source code or 2 transfer the source code according to instructions displayed in a dialog box when you go offline After transferring the object code FB Source will be displayed in yellow at the bottom of the window to indicate that the source code has not yet been transferred This message will disappear when the source code is transferred Procedures
233. node or changing contents of the I O memory area Doing either of these without confirming safety may result in injury Execute online editing only after confirming that no adverse effects will be caused by extending the cycle time Otherwise the input signals may not be readable lf synchronous unit operation is being used perform online editing only after confirming that an increased synchronous processing time will not affect the operation of the main and slave axes Confirm safety sufficiently before monitoring power flow and present value status in the Ladder Section Window or when monitoring present values in the Watch Window If force set reset or set reset operations are inadvertently per formed by pressing short cut keys the devices connected to Output Units may malfunction regardless of the operating mode of the CPU Unit 4 Application Precautions Observe the following precautions when using the CX Programmer e User programs cannot be uploaded to the CX Programmer e Observe the following precautions before starting the CX Programmer e Exit all applications not directly related to the CX Programmer Partic ularly exit any software such as screen savers virus checkers E mail or other communications software and schedulers or other applica tions that start up periodically or automatically XXxiii Application Precautions XXIV 4 e Disable sharing hard disks printers or other devices with other com puters on
234. not match the size specified in another operand variable In particular when the number of elements in the array is less than the size specified by another operand for example when instruction processing size is 16 and the number of elements actually registered in the variable table is 10 the instruction will execute read write processing in the areas exceeding the number of elements In this example read write processing will be exe cuted for the next 6 words after the number of elements registered in the actual variable table If the same area is being used by another instruction including internal variable allocations unexpected operation may occur which may result in a serious accident Do not use variables with a size that does not match the data size to be pro cessed by the instruction in the operand specifying the first address or last address for a range of words Always use either non array variables data type with a size that is the same as the data size required by the instruction or array variable with the number of elements that is the same as the data size required by the instruction Otherwise the following errors will occur If the operand specifying the first address or last address of multiple words uses a non array variable data type with a size that does not match the data size required by the instruction and an AT setting is also not used the CX Pro grammer will output a compile error Example BLOCK TR
235. nstruction Reference Manual TXD_SCB Send String via Serial Port on Serial Communications Board e Function Sends a text string from a serial port on a Serial Communications Board SCB e Application TXD_SCB Send_string Serial_port e Conditions The serial communications mode of the serial port must be set to no protocol communications e Arguments and Return Values TEE Send_string STRING Specifies the text string to send Serial_port INT UINT WORD Specifies the number of the serial port 1 Serial port 1 2 Serial port 2 193 Function Descriptions Appendix C e Example Serial Communi cations Board SCB CPU Unit Get Scene Number command READ Barcode Reader BOOL P_SendEnableSCBPort1 Send Ready Flag AT A356 05 Serial port 1 used 1 Variables i BOOL P_DoSendData Variable to control send function i INT iProcess Process number i STRING Message Send message i i i i i Use serial port number 1 Send data when P_DoSendData is ON and iProcess is 0 IF P_DoSendData TRUE AND iProcess 0 THEN iProcess 1 P_DoSendData FALSE END_IF Execute send processing according to process number CASE iProcess OF 1 Create send text data Message READ iProcess 2 Execute send function if sending is enabled IF P_SendEnableSCBPort1 TRUE THEN TXD_SCB Message 1 iProcess 3 END_IF Sending is finished if S
236. nual CS1G H CPULILI EV1 Describes the communications commands that can be CS1G H CPULILIH addressed to CS CJ series CPU Units CS1W SCB21 V1 41 V1 The following information is included CS1W SCU21 41 C series Host Link commands CJ2H CPU6LJ EIP CU2H CPU6L FINS commands CJ1G CPULILI CJ1G H CPULILIH CJ1G CPULILIP CJ1M CPULIL CJ1W SCU21 V1 41 V1 CP1H XUUUIL L CP1H XALIWIUILI L CP1H YUOUUIL O NSJL_IJ LILILIL B G5D NSJL_I LILILIL B M3D SYSMAC CS CJ Series Communications Commands Reference Manual Note This manual describes commands that can be sent to the CPU Unit without regard for the communications path which can be through a serial communications port on the CPU Unit a communications port on a Serial Communica tions Unit Board or a port on any other Communications Unit NSJ series NSJ Controller Manual Refer to the following manual for NSJ series NSJ Controller specifications and handling methods not given in this manual Cat No Modes Name Description SSS NSJ5 TQULI B G5D NSJ Series Provides the following information about the NSJ series NSJ Con NSJ5 SQL_IL1 B G5D Operation trollers NSJ8 TVUILI B G5D Manual Overview and features NSJ10 TVLILI B G5D ae l l NSJ12 TSOO B G5D Designing the system configuration Installation and wiring I O memory allocations Troubleshooting and maintenance Use this manual in combination w
237. number input variable INT data type Offset internal variable DINT data type Relay internal variable WORD data type 400 array elements AT 83 Unit No setting 2000 __ Multiplies unit number by amp 10 and stores in offset Stores the real I O memory address for the relay in IRO RO Adds offset to IRO IRO _IRO 2 Specify the designated bit in the ClO Area e g CIO word n 1 bit 02 bit 02 T sSETB Turns ON CIO word n 1 2 5 6 Using Index Registers Index Registers IRO to IR15 function as pointers for specifying I O memory addresses These Index Registers can be used within function blocks to directly specify addresses using IRO to IR15 and not the variable names Index Register direct specification IRO to IR15 Index Register indirect speci fication IRO to IR15 Note After storing the real I O memory addresses in the Index Registers using the MOVR 560 instruction Index Registers can be indirectly specified using gen eral instructions This enables all I O memory areas to be specified dynami cally 62 Function Block Applications Guidelines Section 2 5 Pointer All I O memory areas MOVR 560 Index Register Example Specifying 5 IRO using constant offset specification not variable name Function block Specify address in IRO I O memory specifi cation Specify ad dress at 5 offset from IRO Note 1 When Index Registers I
238. number 1 Receive data when P_DoRecvData is ON and reception has been completed IF P_DoRecvData TRUE AND P_EndRecvSCBPort1 TRUE THEN Get 16 characters RXD_SCB Message 16 1 P_DoRecvData FALSE END_IF Related Auxiliary Address Description Area Flag Port 1 Reception A356 06 ON when reception has been completed in no protocol mode Completed Flag Port 1 Reception A356 07 ON when a data overflow occurred during reception in no pro Overflow Flag tocol mode Port 1 Reception A357 Contains the number of characters received in no protocol Counter mode Port 2 Reception A356 14 ON when reception has been completed in no protocol mode Completed Flag Port 2 Reception A356 15 ON when a data overflow occurred during reception in no pro Overflow Flag tocol mode Port 2 Reception A358 Contains the number of characters received in no protocol Counter mode For further information and precautions on related Auxiliary Area flags refer to the section on RXD Serial Com munications Instruction in the CS CJ series Instruction Reference Manual RXD_SCU Receive String via Serial Port on Serial Communications Unit e Function Receives a text string from a serial port on a Serial Communications Unit SCU e Application RXD_SCU Storage_location Number_of_characters SCU_unit_number Serial_port Internal_logic_port e Conditions The serial communications mode of the serial port must be set to no protocol com
239. on 5 The system automatically allocates the addresses used by these variables Set the data area area in ae lt which these addresses are allocated Input 0 004 a 4 l Output 2 00 c utput 3 00 4 Specify the input source and output destination addresses 1 Select the function block that you want to save and save it as a function block definition file cxf 2 Open the other PLC s project and open read the function block definition file cxf that was saved 3 Insert the function block definition in the program when creating the new program Function block definition A 1 Algorithm Standard program section with variable names a b c etc 2 Variables Table defining usage _ Jand properties of variables a b c etc Program Input Instance of function block definition A condition fed oO Input 1 00 Output 5 00 Output 6 00 Read and insert Function block definition file cxf In the CX Programmer Ver 5 0 each function block definition can be com piled and checked as a program We recommend compiling to perform a pro gram check on each function block definition file before saving or reusing the file Version Upgrade Information Section 1 6 1 6 Version Upgrade Information Refer to the CX Programmer Operation Manual W446 for information on upgraded functions other than those for function blocks and structu
240. on Block Program Steps and Instance Execution Time Section 2 9 The following table shows the length of time for A B and C Operation CPU Unit model CJ1H CJ1M CPUL CPU6_ H R CP1H Xi_JL IL 1 CJ2H CP1H XAL ILI J L CPU6L EIP CP1H YU_JL IL 1 CP1L ML IL IJ L CP1L LiU UL J A Startup time Startup time not including 3 3 us 6 8 us 8 8 us 15 0 us I O parameter transfer I O parameter trans 1 bit input variable out 0 24 aa 0 4 0 7 aan 1 0 ae fer processing time put variable or raion DS The data type is put variable BOOL indicated in paren 1 word input variable 0 19 us a 3 us a 6 us a 8 us theses output variable or input output variable INT UINT WORD 2 word input variable 0 19 us 0 5 us 0 8 us 1 1 us output variable or input output variable DINT UDINT DWORD REAL 4 word input variable 0 38 us 1 0 us 1 6 us 2 2 US output variable or input output variable LINT ULINT ORS LREAL C Function block defi Total instruction processing time Same as standard user program nition instruction execution time Example CJ1H CPU67H R Input variables with a 1 word data type INT 3 Output variables with a 1 word data type INT 2 Total instruction processing time in function block definition section 10 us Execution time for 1 instance 3 3 us 3 2 x 0 19 us 10 us 14 25 us Note The execution time is increased according to the number of multiple instances
241. on the instruction operand The COUNTER data type cannot be used in structured text function blocks 37 Function Block Specifications Section 2 1 AT Settings Allocation to Actual Addresses With internal variables it is possible to set the variable to a particular I O memory address rather than having it allocated automatically by the system To specify a particular address the user can input the desired I O memory address in this property It is still necessary to use variable name in program ming even if a particular address is specified Note 1 The AT property can be set for internal variables only 2 AT settings can be used only with the CIO Core I O Area A Auxiliary Area D Data Memory Area E Extended Memory Area H Holding Relay Area W Internal Relay Area The AT property cannot be set in the following memory areas e Index Register and Data Register Areas directly indirectly specified e Indirectly specified DM EM binary mode BCD mode 3 AT settings can be used for the following allocations e Addresses for Basic I O Units CPU Bus Units or Special I O Units e Auxiliary Area bits not registered as external variables in advance e PLC addresses for other nodes in the network Example If the READ DATA FILE instruction FREAD is being used in the function block definition and it is necessary to check the File Memory Operation Flag A34313 use an internal variable and specify the flag s addres
242. onstants are not registered as variables Enter constants directly in instruc tion operands Variables Section 1 3 e Ladder programming language Enter hexadecimal numerical values after the and decimal values after the amp e Structured text ST language Enter hexadecimal numerical values af ter 16 and enter decimal numerical values as is Exception Enter directly or indirectly specified addresses for Index Registers IRO to IR15 and Data Registers DRO to DR15 directly into the instruction operand 1 3 2 Variable Usage and Properties Variable Usage The following variable types usages are supported Internals Internal variables are used only within an instance They cannot be used pass data directly to or from I O parameters Inputs Input variables can input data from input parameters outside of the instance The default input variable is an EN Enable vari able which passes input condition data Outputs Output variables can output data to output parameters outside of the instance The default output variable is an ENO Enable Out variable which passes the instance s execution status In Out Input output variables can input data from input parameters out side of the instance and can return the results of processing in a function block instance to external parameters Externals External variables are either system defined variables registered in advance with the CX Programmer such as the Condition Flag
243. or later and CS CJ series CPU Units with unit version Ver 3 0 or later NSJ Con trollers and FQM1 Flexible Motion Controllers Use the following equation to calculate the approximate number of program steps when function block definitions have been created and the instances copied into the user program of the CPU Unit Number of steps Number of instances x Call part size m I O parameter transfer part size n x Num ber of parameters Number of instruction steps in the function block definition p See note Note The number of instruction steps in the function block definition p will not be diminished in subsequence instances when the same function block definition is copied to multiple locations i e for multiple instances Therefore in the above equation the number of instances is not multiplied by the number of instruction steps in the function block definition p The following table applies only to CP series CPU Units with unit version Ver 1 0 or later and CS CJ series CPU Units with unit version Ver 3 0 or later NSJ Controllers and FQM1 Flexible Motion Controllers 76 Number of Function Block Program Steps and Instance Execution Time Section 2 9 Number of steps m eal pr dT Stops I O parameter 1 bit BOOL input vari 6 steps transfer part able or output variable The data type is 1 word INT UINT or 6 steps shown in parenthe WORD input variable or ses output variable 2 word DINT UDINT
244. ource 4 To change the function block name left click or right click and select Re name from the pop up menu 5 Double click the function block definition to edit it 3 2 9 Checking the Source Function Block Definition from an Instance Use the following procedure to check the function block definition from which an instance was created Either double click the instance or right click the instance and select To Lower Layer from the pop up menu The function block definition will be dis played 3 2 10 Checking Instance Information such as Nesting Levels When function blocks are nested in the created program the structure of the nesting levels can be checked by selecting Windows FB Instance Viewer from the View Menu The function block relationships will be shown in a direc tory tree format with the calling function blocks at the higher level and the called function blocks at the lower level The FB Instance Viewer Window will provide other information such as the array variables being used and internal addresses allocated to the variables as shown in the following diagram Variables can be registered in the Watch Window just by dragging the variable from the list of variables used in the instance and dropping the variable in the Watch Window 106 Procedures Section 3 2 FB_manual_sample CX Programmer NewPLC1 NewProgram1 Section1 Diagram loj x File Edit View Insert PLC Program Tools Window H
245. pansion Expansion Rack x 3 Rack x 3 Rack x 3 Rack x 1 Rack x 1 Racks Racks Racks Rack Racks Program capacily steps Data memory 32K words D00000 to D32767 10K words D00000 to D09999 and D32000 to D32767 Number of connectable Expan 3 Units CP series Expansion Units and 1 Unit CP series Expan sion Units and Expansion I O Units Expansion I O Units sion Unit or Expansion I O Unit Function blocks Maximum num 128 ber of definitions Maximum num 256 ber of instances Inside comment Function block 256 memory program mem ory Kbytes Comment files 64 Kbytes 4 Program index 6 files Kbytes Variable tables 64 Kbytes NSJ series NSJ Controllers NSJ5 TQO0_I G5D NSJ5 SQ0 _ G5D NSJ5 TQOL_ M3D NSJ5 SQ0L_ M3D NSJ8 TVOL G5D NSJ10 TVOL G5D NSJ8 TVOL M3D NSJ12 TSOL G5D Max number of VO points 1280 Program capacily steps Extended data memory 232K words X 3 banks EO 00000 to E2_ 32767 Function blocks Maximum num 1 024 ber of definitions Maximum num 2 048 ber of instances Inside comment Function block 1 024 memory program mem ory Kbytes Comment files 64 Kbytes Program index 64 files Kbytes Variable tables 12 Kbytes 74 CPU Unit Function Block Specifications Section 2 8 FQM1 Flexible Motion Controllers Oo m Coordinator Module Motion Control Modules Model QM CM002 FQM1 MMA22 FQM1 MMP22 Max number Moel o I O
246. pe if required specify the array as 400 elements see note AT setting 1500 in Index Register IRO Note Specifying an array for SCPU_ relay such as SCPU_relay 2 for example enables the address CIO 1500 UnitNo X amp 25 2 to be specified This also applies in example 2 below 3 Increment the real I O memory address in Index Register IRO by the value for the variable Offset variable UnitNo X amp 25 Precautions for Instructions with Operands Specifying the First or Last of Multiple Words Section 2 6 2 Specifying constant offset of Index Register Specifying a bit between The real I O memory address for CIO 1500 CIO n 0 to n 24 Check local node data link participation NetCheck_OK Local Node Net Tet 6 R0 UnitNo X amp 25 is stored in Index Register IRO by the processing in step 1 above Therefore the word address is specified using the constant offset from IRO For example specifying 2 IRO will specify CIO 1500 UnitNo X amp 25 2 Note CIO 1500 UnitNo X amp 25 2 can also by specified by specifying SCPU_relay 2 using the array set ting with SCPU_relay Specify bit addresses using instructions that can specify bit addresses within words e g second operand of TST 350 351 SETB 532 instructions Example Variable NodeSe f_OK turns ON O when NetCheck_OkK internal variable BOOL data type is ON and bit 15 of the word at the 6 offset from IRO CIO 1500
247. pecified expression is executed E Reserved Word CASE E Statement Syntax CASE lt integer_equation gt OF lt integer_equation_value_1 gt lt expression_1 gt lt integer_equation_value_2 gt lt expression_2 gt lt integer_equation_value_n gt lt expression_n gt ELSE lt expression_m gt END CASE 152 Statement Descriptions Section 5 5 E Processing Flow Chart Expression m Expression n Expression 2 Expression 1 E Usage Use the CASE statement to execute different operations depending on speci fied integer values E Description If the integer_equation matches integer_equation_value_n expression_n is executed if the integer_equation does not match any of integer_equation_value_n expression_m is executed E Precautions e CASE must be used together with END_CASE e The result of the integer_equation must be in integer format INT DINT LINT UINT UDINT or ULINT e Statements that can be used in expression_ are assignment state ments IF CASE FOR WHILE or REPEAT e Multiple statements can be executed in expression_l_ Be sure to use a semicolon delimiter between multiple statements in an expression e Variables in integer format INT DINT LINT UINT UDINT or ULINT or equations that return integer values can be specified in the integer_equation e When OR logic is used for multiple integers in the integer_equation_value_n separate the numerical value using a comma delimiter To
248. points 344 points 24 built in 20 built in points points 320 points on Basic I O Units Program capacity steps capacity steps Program capacity steps 1 OK Function blocks Maximum num 128 ber of definitions Maximum num 256 ber of instances Inside comment Function block memory program mem ory Kbytes Comment files Kbytes Program index files Kbytes Variable tables Kbytes 2 8 2 Operation of Timer Instructions There is an option called Apply the same spec as 10 2047 to 12048 4095 in the PLC properties This setting affects the operation of timers as described in this section Selecting the Option If this option is selected all timers will operate the same regardless of timer number as shown in the following table Timer Operation for Timer Numbers T0000 to T4095 Refresh Description When instruction is The PV is refreshed each time the instruction is executed executed If the PV is 0 the Completion Flag is turned ON If it is not 0 the Completion Flag is turned OFF When execution of all All PV are refreshed once each cycle tasks is completed Every 80 ms If the cycle time exceeds 80 ms all PV are refreshed once every 80 ms Not Selecting the If this option is not selected the refreshing of timer instructions with timer Option Default numbers T0000 to T2047 will be different from those with timer numbers T2048 to T4095 as given below This behavior is the same for CPU Units that
249. possible to compare the edited function block with a function block in the actual PLC or another project file to check whether the two function blocks are identical For details on comparing programs refer to the CX Programmer Operation Manual W446 3 2 16 Saving and Reusing Function Block Definition Files Note Saving a Function Block Library File 1 2 3 Reading Function Block Library Files into Other Projects 1 2 3 112 The function block definition that has been created can be saved indepen dently as a function block library file cxf to enable reusing it in other projects 1 Before saving to file or reusing in another project compile the function block definition and perform a program check 2 When function blocks are being nested the function block definition of the called nested function blocks are included and saved in the function block library file Use the following procedure to save a function block definition to a function block library file 1 Select the function block definition right click and select Save Function Block to File from the pop up menu Alternately select Function Block Save Function Block to File from the File Menu 2 The following dialog box will be displayed Input the file name Function Block Library Files cxf should be selected as the file type Select Function Block Library Fil x Save in y TMF m e Ei File name Save as type
250. program symbols global symbols and local symbols can be set in output parameters See note b Note a The function block s input variable data size and the program s symbol data size must match b The function block s output variable data size and the program s symbol data size must match 12 9ix 1 Inputs are located on the left of the instance and outputs on the right Place the cursor where the parameter is to be set and press the Enter Key Al ternately select Function Block Parameter from the Insert Menu The New Parameter Dialog Box will be displayed as shown below 99 Procedures Section 3 2 ew Insert Window PLC Program telp JO eA RSA tB 2e lanla B ARER a a XQ ESE Sis R L oL amp ae alane EEEE es cos 28 39 28 AAE Program Name NewPrograrm NewProject NewPLC1 CJ1G H Offline Si Symbols GT 10 Table Section Name Section sample _ Instance name FunctionBlock1 lt n Memory A Programs a 09 Press the P Key with the cursor on the left section Beea of the instance The New Parameter END Dialog Box will be displayed amp F Function Blocks d F FunctionBlock1 sadbbeonesbavvansssiat FunctionBlock2 Function block definition New Parameter x Detail gt gt Cancel So Input the address from which to pass data to the input variable 2 Set the source address from which to p
251. progress Do not turn OFF the power supply to the CPU Unit when the BKUP indicator is lit The data will not be backed up if power is turned OFF To display the status of writing to flash memory on the CX Programmer select Display dialog to show PLC Memory Backup Status in the PLC properties and then select Windows PLC Memory Backup Status from the View Menu Programs including function blocks ladder programming language or structured text ST language can be downloaded or uploaded in the same way as standard programs that do not contain function blocks Tasks including function blocks however cannot be downloaded in task units uploading is possible If a user program containing function blocks created on the CX Program mer Ver 5 0 or later is downloaded to a CPU Unit that does not support function blocks CS CJ series CPU Units with unit version 2 0 or earlier all instances will be treated as illegal commands and it will not be possible to edit or execute the user program If the input variable data is not in boolean format and numerical values only e g 20 are input in the parameters the actual value in the ClO Area address e g 0020 will be passed Therefore be sure to include an amp or prefix before inputting the numerical value Addresses can be set in input parameters but an address itself cannot be passed as an input variable Even if an address is set as an input param eter the value passed to the func
252. project can be protected by setting a password to restrict access The following two levels of password protection that can be set depending on the application This password protection level restricts both writing changing and displaying the contents of the function block definition To set read write protection select Prohibit writing and display as the Protec tion type in the function block s properties This level of protection prevents unintended program changes modifications and also protects against misap propriation of program materials This password protection level restricts writing changing the contents of the function block definition To set write protection select Prohibit writing as the Protection type in the function block s properties This level of protection prevents unintentional pro gram changes modifications Setting Password Protection Protecting an Individual Function Block Definition This operation can be performed offline only Password protection can be applied to individual function block definitions or multiple function block definitions together Use the following procedure to set the password protection for an individual function block definition 109 Procedures Section 3 2 12 3282 1 In the project workspace select the function block definition right click and select Properties from the pop up menu Alternately select Proper ties from the View Menu 2 The Function Bloc
253. r from the pop up menu Or select Func tion Block Ladder from the Insert Menu Creating Inserting Function Block Definitions with Structured Text 1 Select Function Blocks in the project workspace right click and select Insert Function Blocks Structured Text from the pop up menu Or se lect Function Block Structured Text from the Insert Menu lx 0 NewProject NewPLC1 CJ1G H Offline Program Name NewProgram1 Symbols QT 10 Table and Unit Setup Section Name Section1 Qe Memory E TA Programs 3 NewProgram1 00 Symbols E Function ble a FunctionBlock1 is displayed as the Icon under the Function Blocks Icon F 2 A function block called FunctionBlock1 will be automatically inserted either after the for ladder programming language default or the a for ST language This icon contains the definitions for the newly created insert ed function block 3 Whenever a function block definition is created the name FunctionBlock_ will be assigned automatically where LI is a serial number These names can be changed All names must contain no more than 64 characters Using OMRON FB Library Files Use the following procedure to insert OMRON FB Library files cxf 1 Select Function Blocks in the project workspace right click and select Insert Function Blocks Library File from the pop up menu Or select Function Block Library File from the Insert Menu The following
254. r further information and precautions on related Auxiliary Area flags refer to the section on TXDU Serial Communications Instruction in the CS CJ series Instruction Reference Manual RXD_CPU Receive String via CPU Unit RS 232C Port e Function Receives a text string from the RS 232C port on the CPU Unit e Application RXD_CPU Storage_location Number_of_characters e Conditions The serial communications mode of the RS 232C port must be set to no protocol communications e Arguments and Return Values TEE Storage_location STRING Specifies the storage location for the received text string Number_of_characters INT UINT WORD Specifies the number of characters to receive 0 to 255 Function Descriptions Appendix C e Example CPU Unit Message Value to read Barcode reader Variables BOOL P_DoRecvData Variable to control receive function STRING Message Variable to store received message BOOL P_EndRecvCPUPort Reception Completed Flag AT A392 06 Receive data when P_DoRecvData is ON and reception has been completed IF P_DoRecvData TRUE AND P_EndRecvCPUPort TRUE THEN Get 16 characters RXD_CPU Message 16 P_DoRecvData FALSE END_IF Related Auxiliary Address Description Area Flag RS 232C Port A392 06 ON when reception has been completed in no protocol mode Reception Com pleted Flag RS 232C Port A392 07 ON when a data overflow occurred during re
255. r_of_ INT string starting from by variable c extracted from the characters UINT the left left of text string b and stored in variable a RIGHT lt Source_string gt Source _ STRING STRING _ Extracts charac a RIGHT b c lt Number_of_characters gt string ters from a text number of characters specified Number_of_ INT string starting from by variable c extracted from the characters UINT the right eight of text string b and stored in variable a MID lt Source_string gt Source _ STRING STRING _ Extracts charac a MID b c d lt Number_of_characters gt string ters from a text number of characters specified lt Position gt Number_of_ INT string by variable c extracted from text characters UINT string b starting at position spec Position INT able a UINT variable a ified by variable d and stored in CON Source_ STRING STRING Concatenates text a CONCAT b c CAT lt Source_string_1 gt lt S string strings text strings b c are joined ource_string_2 gt Up to and stored in variable a 32 source strings INSERT lt Source_string gt Source_ STRING STRING _ Insert one text a INSERT b c d lt nsert_string gt lt Position gt string string into another text string c inserted into text Insert_ STRING string b at position specified by string variable d and resulting string Position INT UINT stored in variable a DELETE lt Source_string gt
256. re ON IF P_ComInstEnable TRUE AND P_RXDU_Recv TRUE THEN RXD_SCU Message 16 0 2 7 iProcess 2 END_IF Reception has been completed if Communications Port Enable Flag is ON IF P_ComInstEnable TRUE THEN iProcess 0 END_IF END_CASE 199 Function Descriptions Appendix C Related Auxiliary Area Flag Address O O O OOO Communications Instruction A202 00 to ON when network communications can be executed The bit Enable Flag A202 07 numbers correspond directly to the internal logic port numbers Bits 00 to 07 Internal logic ports O to 7 Related CPU Bus Unt Area bts BR O OOOO n CIO 150 25 x unit number ON when reception has been completed in no protocol mode Port 1 n 9 Port 2 n 19 n CIO 150 25 x unit number ON when a data overflow occurred during reception in no pro Port 1 n 9 tocol mode Port 2 n 19 n CIO 150 25 x unit number Contains the number of characters received in no protocol Port 1 n 10 mode Port 2 n 20 For further information and precautions on related Auxiliary Area flags refer to the section on RXDU Serial Communications Instruction in the CS CJ series Instruction Reference Manual Angle Conversion Functions DEG_TO_RAD Convert Degrees to Radians e Function Converts an angle in degrees to radians e Application Return_value DEG_TO_RAD argument e Arguments and Return Values aaa REAL LREAL Specifies an angle in degrees Return_value RE
257. re text Version 8 3 to 9 0 Upgrade Information Data Structures Supported as Symbol Data Types Data structures are not supported CJ2 CPU Units now support data structures as symbol data type Version 8 0 to 8 1 Upgrade Information The new PLC models of CU2H CPU6L supporting function blocks and struc tured text are now supported Version 7 2 to 8 0 Upgrade Information The new PLC models of CJU2H CPU6LJ EIP supporting function blocks and structured text are now supported Version 7 0 to 7 2 Upgrade Information Improved Support for For details on the other improvements to CX Programmer functions in this Function Blocks and upgrade refer to the CX Programmer Operation Manual W446 Structured Text m IEC61131 3 Language Improvements Support has been improved for the structured text and SFC languages which are IEC61131 3 languages Ladder structured text ST and SFC program ming can be combined freely so that the best language for each process can be used which reduces program development time and makes the program easier to understand Support for ST Language in the Program Task Allocation The ST language could be used only in function The ST language can be used in programs task allocation other than blocks function blocks ST programs can be allocated to tasks Other programming languages can be combined freely in a single user program With this capability numerical calculations can be written as ST progra
258. reatine the ST Progra cs cores denonctcurdeeermeescus 172 6 1 5 Compiling the ST Program Checking Program 174 6 1 6 Downloading Uploading Programs to the Actual CPU Unit 174 6i 7 Comparing ST Probrams 3 2 4 oa fe bake ee AERA A 175 6 1 8 Monitoring and Debugging the ST Program 175 6 1 9 Online Editing of ST Programs 0 0 0 e eee 176 169 Procedures Section 6 1 6 1 Procedures This section explains how to create ST programs For details on creating a function block with ST language refer to SECTION 3 Creating Function Blocks in Part 1 Function Blocks of this manual 6 1 1 Creating a Project 1 2 3 1 Start the CX Programmer and select File New 2 Inthe Change PLC Dialog Box select a PLC model that supports ST pro grams from the Device Type list Refer to 4 2 1 PLC Models Compatible with ST Programs ST Tasks for a table of the PLC models that support ST programs 3 Click the Settings Button and select the CPU Type For details on other settings refer to the CX Programmer Operation Manual W446 6 1 2 Creating a New ST Program Use the following procedure to create an ST program in a project 1 2 3 1 Right click the Programs Item in the project workspace to display the pop up menu 2 Select Insert Program ST from the pop up menu vixi 0 Program Name NevwProgram E NewProject NewPLC1 CI1G H Offline Symbols
259. resses depending on the data size of the parame ter used to pass data to and from the input output variable i Address D200 is passed to the input output variable CAL Inside the function block the specified data size of I O memory starting from D200 is processed and changes are thus passed outside the function block instance Input output variables are specified a CX Programmer variable table by selecting In Out for the variable usage E Internal Variables Internal variables are used within an instance These variables are hidden within each instance They cannot be referenced from outside of the instance and are not displayed in the instance The values of internal variables are retained until the next time the instance is executed i e when EN turns OFF the value of the internal variable is retained Consequently even if instances of the same function block defini tion are executed with the same I O parameters the result will not necessarily be the same Example The internal variable tim_a in instance Pulse _2sON_1SOFF is different from internal variable tim_a in instance Pulse_4SON_1SOFF so the instances can not reference and will not affect each other s tim_a value Variable table Usage Name Data type CLOCK PULSE 3 Internal tim_a TIMER EN ENO Internal tim_b TIMER Input ON_TIME INT Input OFF_TIME INT CLOCK PULSE EN ENO 35 Function Block Specifications Section 2 1
260. riables When an instance is created from a function block definition the CX Program mer internally allocates addresses to the variables Addresses are allocated to all of the variables registered in the function block definition except for vari ables that have been assigned actual addresses with the AT Settings prop erty FB instance areas Program Non retained area Instance of function block definition A f Starting address 15 0 RECOV Wee a Input 0 00 a b Output 2 00 D or E Area Size words t Output 5 00 Retained area Note Variable c is an internal _Starting address 15 0 variable so it is not displayed po E HDoE 4 a oo Ar a Size words Usage Inputs rea I Properties l 4 Name Type AT Jinitial Value Retained Jimer area a BOOL a ae Starting address Size Completion Usage Outputs Pa p T Area Flags Properties P ue Name Type AT Initial Value Retained a ea xe Counter area b BOOL VES UI Startin Size Completion t TIMER p Automatic allocation of ates C Area Fagg i Usage Internals jadaresses by system Properties g eno Name Type AT InitiaValue Retained f _ BOOL 2000 00 Manual allocation of address to variable in FB by AT Settings option The user se
261. roduction to Structured Text SECTION 5 Structured Text ST Language Specifica tions SECTION 6 Creating ST Programs Appendices TABLE OF CONTENTS PRECAUTIONS iai0 irene eee een eieeewetiveasaas AXI 1 ended AUCICN CE ecru nue renee e aeea E beth aes E hy MGA EEE E xxii 2 General PLCC AML ONS Spc Sta oe hte hes oes Ace delete secs eet Ace icles eles BA RS fresh A ee xxii 3 SA V PECA ONS ar e a Seats ce a te tech beng E E xxii 4 Application PrecCauulOnS 02 setae cane ae hola a E ATE A aa xxiii Part 1 Function Blocks SECTION 1 Introduction to Function Blocks cee0 3 l 1 Introducing the Function Blocks 0 0 cece eee eens 4 12 FUNCUOM BIOCKSs i csc kw eee Ea are eee sae eel aes el Gy edits wade eed ey 11 lo Variables sss acces iti aw been eae ene toe ne ledet a fesee hited teat eheeee 18 1 4 Converting Function Block Definitions to Library Files 2044 23 led Usate Proce GS enere neire teed etek iwc ahiwestdeweasiwewtawus Een SRDE Hee ee 23 1 6 Version Upgrade Information 0 0 0 0 eee e eens 25 SECTION 2 Function Block Specifications ceeeeeeeees 29 2 1 Funcion Block Speciicalions 4 4 22 ici oie aaeeea eta tehesube EED NG 30 2 2 Data Types Supported in Function Blocks nanan 00 ccc ee eee eens 41 2 5 Instance gt pe CIC atlOMS ertekei a hehe he aes eae a ah Sa os We Sea oR ees 42 2 4 Prosrammine RestiChOns 6 tasasi a aiaa a deeb ew A aes eae en
262. rogram ST task Function block FB ST Ladder diagram Example Instance_FB A ST Example wT aaa 7 INSTANCE_FB is an instance name of Example data type FUNCTIONBLOCK Instance_FB Action program Statement Descriptions Section 5 5 b Calling a function block from another function block Function block ST Function block FB Program Ladder diagram Instance_ST Example a Instance_FB Function block FB XN ji ST Example INSTANCE_FB is an instance name of data type FUNCTIONBLOCK Variable Settings e Setting the variables of the ST program and SFC program call source The ST program and SFC program have the following variables and the following values are passed with the called function block SFC program the called function block A Passed to EN internal variable Pete paangat nn B Received from ENO internal variable hete oniayp acon nn Instance_FB Calling function block definition Function block Note Data type FUNC TIONBLOCK e Function block call source variable settings The function block call source has the following variables and the follow ing values are passed with the called function block Variable type Function block call Values passed to or received source variable name from variables in the called function block Input variables Passed to FB2_IN1 Output vari
263. rogrammer Note Addresses cannot be directly input for instruction operands within function blocks Only Index Registers IR and Data Registers DR can be input directly as follows not as variables Addresses DRO to DR5 direct specifica tions IRO to IR15 and indirect specifications IRO to IR15 Using Structured Text An ST language program see note can either be input directly into the ST input area or a program input into a general purpose text editor can be copied and then pasted into the ST input area using the Paste Command on the Edit Menu Note The ST language conforms to IEC61131 3 For details refer to SECTION 5 Structured Text ST Language Specifications in Part 2 Structured Text ST 87 Procedures Section 3 2 Untitled CX Programmer NewPLC1 FunctionBlock1 FB Structured Text x File Edit View Insert PLC Program Tools Window Help l x Ose Sas oael2eclauezlevllasealnu paAe AFRE ula KO SE Bile tm S aa OBGFEELK ES 2 wl Fa S BE BA We Ie e D A p a cS oa E 4415 p Sve to Datatype aT initial v Ret Commen 0 E E NewPLc1 CI1G H Offline lt emor A Programs El a NewProgram1 00 St Symbols ST program input directly or pasted from one created in a text editor Note 1 Tabs or spaces can be input to create indents They will not affect the al gorithm 2 The display size can be changed by holding down the Ctrl Key an
264. s and some Auxiliary Area bits or user defined global symbols for use within instances For details on variable usage refer to the section on Variable Type Usage under Variable Definitions in 2 1 2 Function Block Elements The following table shows the number of variables that can be used and the kind of variable that is created by default for each of the variable usages 1 3 3 Variable Properties Variable Name Note Data Type AT Settings Allocation to an Actual Addresses Variables have the following properties The variable name is used to identify the variable in the function block It doesn t matter if the same name is used in other function blocks The variable name can be up to 30 000 characters long but must not begin with a number Also the name cannot contain two underscore characters in a row The character string cannot be the same as that of a an index register such as in IRO to IR15 For details on other restrictions refer to Variable Defi nitions in 2 1 2 Function Block Elements Select one of the following data types for the variable BOOL INT UINT DINT UDINT LINT ULINT WORD DWORD LWORD REAL LREAL TIMER COUNTER and STRING For details on variable data types refer to Variable Definitions in 2 1 2 Func tion Block Elements It is possible to set a variable to a particular I O memory address rather than having it allocated automatically by the system To specify a particular address the
265. s select the desired variable in the ST variable monitor window displayed in reverse video when selected right click and select Force On Force Off Force Cancel or Force Cancel All Forces from the pop up menu E Copying and Pasting in the Watch Window 1 2 3 1 To copy a variable to the Watch Window select the desired variable in the ST variable monitor window displayed in reverse video when selected right click and select Copy from the pop up menu 175 Procedures Section 6 1 Average Yalue Measurement CX Programmer NewPLC1 NewProgrami Struct edT aH File Edit View Insert PLC Program Simulation Tools Window Help 2 Right click in the Watch Window and select Paste from the pop up menu 40l x 15 x ar oR SR SB OS oh Th SNP a Me B AR TR a a A la Kaa SE Bist R4tv4ew OSSSGEL amp S Cla a a aA AAO es BRO Aw PAS ees SSSATA gt OTH y a m a a tees e 4 x Es NewProject average thickness1 thickness2 thickness3 3 0 aun NewPLC1 CJ1G H Monitor Mode Symbols g7 10 Table and Unit Setup Settings S Memory card EB Error log PLC Clock lt Memory Programs E 3 Work_piece_Measurement 00 Ru Symbols 8 Default_Setting 8 Measurement END H RB NewProgram1 01 Running Symbols E lt 3 Result_Display 02 Running Symbols p LED_Display END JF Function Blocks 4 b 1 PLC Name Name Addre lt DataT
266. s an algo rithm Variable Table as an Interface At this point the variable table is empty because there are no variables allo cated for I O memory addresses in the PLC Ladder Program or Structure Text as an Algorithm e With some exceptions the ladder program for the function block can con tain any of the instructions used in the normal program Refer to 2 4 Pro gramming Restrictions for restrictions on the instructions that can be used e Structured text can be input according to the ST language defined in IEC61131 3 Double click the inserted function block library or right click and select Open from the pop up menu to display the variable table that has finished being created at the top right window and the ladder program that has finished being created in the bottom right window Both windows are displayed in gray and cannot be edited Procedures Section 3 2 r L1 LLK LINKI yl File Edit View Insert PLC Program Tools Window Help 18 x DSM AR SGSR SRAL Mw KASS II lite od 2 2 amp 2 D pie fA aQ Sis BR T R 1 WY OSO BHA amp S e eH aE Ladder program r prog Note Function block definitions are not displayed in the default settings for OMRON FB Library files cxf To display definitions select the Display the inside of FB option in the function block properties Select the OMRON FB Library file in the project workspace right click select Properties and select the Dis play the inside
267. s arrays which is not possible for input variables and output variables If an input output array variable is used a range of addresses of the specified size starting from the address set for the input parameter can be used inside the FB Input output variables should thus be used when it s necessary to pass large quantities of data to a function block Program Section Instance of FB definition A Specify an address far the input parameter the address will be passed to the FB D200 D200 to D2009 can be used in the rest of the program after being changed in the FB Contents can be changed in the FB Use an input output variable to pass large quantities of data to the FB only the fifst address is actually passed This address gt D200 Data Data 0 indicates D200 is passed D201 WORD data Data 1 indicates D201 Array setting Etc D209 10 elements Function Block Applications Guidelines Section 2 5 External Variables Condition Flags Clock Pulses Auxiliary Area Bits Global Symbols in Program Internal Variables Internally Allocated Variables and Variables Requiring AT Settings Condition Flags e g Always ON Flag Equals Flag Clock Pulses e g 1 0 second clock pulse bit pre registered Auxiliary Area Bits e g First Cycle Flag and global symbols used in the program are all external variables defined by the system Variables that are not specified as
268. s in the AT set ting Register an internal variable select the AT setting option and specify A384313 as the address The status of the File Memory Operation Flag can be checked through this internal variable Edit Variable x xl Advanced Settings x OO amre Name NOW CARD_ACCESS ox Array Settings Data Type BOOL x _Cancel M Array Variable Usage Internal ae 3 hitial Value FALSE Retain AT Settines Comment M AT Specified Address Address A34313 is allocated to a boolean internal variable named NOW_CARD_ACCESS When the AT setting is used the function block loses its flexibility This func tion should thus be used only when necessary Array Setting With internal variables and input output variables a variable can be defined as an array Note Only one dimensional arrays are supported by the CX Programmer With the array setting a large number of variables with the same properties can be used by registering just one variable e An array set for an internal variable can have from 1 to 32 000 array ele ments An array set for an input output variable can have the number of elements given in the following table Data type Number of elements BOOL 2 048 INT UINT WORD 2 048 38 Function Block Specifications Section 2 1 Note Data type Number of elements DINT UDINT DWORD 1 024 LINT ULINTILWORD e An array can be set only for internal variables or input output variables e Any data type
269. s in the instruction operand refer to 2 7 Instruction Support and Operand Restrictions To specify the first or last of multiple words in an instruction operand always specify a variable with AT setting or an external variable or a variable with the same size as the data size to be processed in the instruction The follow ing precautions apply 1 Ifa non array variable is specified without AT setting and without a match ing data size the CX Programmer will output an error when compiling 2 The following precautions apply to when an array variable is specified 65 Precautions for Instructions with Operands Specifying the First or Last of Multiple Words Section 2 6 Non array Variables without Matching Data Size and without AT Setting 66 Size to Be Processed in the Instruction Operand Is Fixed Make sure that the number of elements in the array is the same as size to be processed by the instruction Otherwise the CX Programmer will output an error when compiling Size to Be Processed in the Instruction Operand Is Not Fixed Make sure that the number of elements in the array is the same or greater than the size specified by another operand Other Operand Specifying Size Constant The CX Programmer outputs an error when compiling Other Operand Specifying Size Variable The CX Programmer will not output an error when compiling a warning mes sage will be displayed even if the number of elements in the array does
270. s not actually being used and the output variable is not in the middle of the list of output variables Example Instance_FB IN1 IN2 IN8 OUT1 OUTS In this case the OUTS at the end of the list would return the value from FB_OUT2 e The EN and ENO data cannot be entered as an argument or return value e Specification method 1 cannot be used together with specification method B in the same function block call statement E Example 2 In the following example function block 1 calls function block 2 which calcu late the average value by calling a function block from within a function block Program FB1 ST The data1 data2 and data3 values are Instance_FB1 passed to input1 input2 and inputs Average_FB input1 data1 input2 data2 F ____ input3 data3 average gt AVG B FB2 ST i ee average input1 input2 inputs 3 The average value is returned in AVG Average_FB is an instance name with data type FUNCTION BLOCK Function Block 1 e Variable Table fnputvarabe EN o Input variable BChedk BOOL oo Output variable ENO BOOL E Output variable Received fom average Internal variable Average_FB FUNCTION BLOCK Called function block definition Function block 2 165 ST language Program Example Section 5 6 e ST language Algorithm If bCheck is true function block 2 is called to calculate the average value The 3 values data1 data2 and data3 are passed to function block 2 inpu
271. s the P Key 2 Input the source address for the input variable or the destination address for the output variable Refer to 3 2 6 Setting the FB Instance Areas for details 1 Select the instance and select Function Block SFC Memory Function Block SFC Memory Allocation from the PLC Menu 2 Set the function block memory allocations Printing Saving and Reusing Function Block Files Compile the Function Block Definition and Save It as a Library File 1 2 3 Refer to 3 2 12 Compiling Function Block Definitions Checking Program and 3 2 16 Saving and Reusing Function Block Definition Files for details Compile the function block that has been saved Print the function block Save the function block as a function block definition file cxf Read the file into another PLC project eee WN ee Transferring the Program to the PLC Refer to 3 2 17 Downloading Uploading Programs to the Actual CPU Unit Monitoring and Debugging the Function Block Refer to 3 2 18 Monitoring and Debugging Function Blocks 81 Procedures Section 3 2 3 2 Procedures 3 2 1 Creating a Project Creating New Projects with CX Programmer 1 2 3 1 Start the CX Programmer and select New from the File Menu 2 Inthe Change PLC Window select a Device Type that supports function blocks These are listed in the following table CPU NSJ G5D Used for the NSJ5 TQOLI G5D NSJ5 SQO0L G5D NSJ8 TVOLI G5D NSJ10 TVOL_I G5D and NS
272. t 0 OFF False result e Statements that can be used in expression_1 and expression_2 are assignment statements IF CASE FOR WHILE or REPEAT Example IF lt condition_1 gt THEN IF lt condition_2 gt THEN lt expression_1 gt ELSE lt expression_2 gt END IF END IF The processing flow diagram is as follows Expression 1 Expression 1 149 Statement Descriptions IF Statement Multiple Conditions 150 Section 5 5 ELSE corresponds to THEN immediately before it as shown in the above diagram e Multiple statements can be executed within expression_1 and expression_2 Be sure to use a semicolon delimiter between multiple statements in an expression e The ELSE statement can be omitted When ELSE is omitted no opera tion is executed if the result of the condition equation is false E Processing Flow Diagram Expression E Examples Example 1 If variable A gt 0 is true variable X will be substituted with numerical value 10 If A gt 0 is false variable X will be substituted with numerical value 0 IF A gt 0 THEN X 10 ELSE X 0 END LF Example 2 If variable A gt 0 and variable B gt 1 are both true variable X will be substituted with numerical value 10 and variable Y will be substituted with numerical value 20 If variable A gt 0 and variable B gt 1 are both false variable X and variable Y will both be substituted with numerical value 0 IF A gt O AND B gt 1 THEN X 10
273. t variables input1 input2 and input3 respectively The result of the calcula tion average is returned to AVG Note The following diagram shows the Average_FB function block called with specification method A both function block s variables listed IF bCheck TRUE THEN Average input1 datal input2 data2 input3 data3 aver age gt AVG ELSE RETURN END IF Function Block 2 e Variable Table Variable type Data type Passage to from FB1 nputvarable EN BOL a nut varab Reodor da Ouputvarabie ENO BOON Output variable INT e ST language Algorithm Calculates the average value of input1 inout2 and input3 and stores the result in average average inputl input2 input3 3 5 6 ST language Program Example 5 6 1 Using an ST Program in a Function Block Converting an Integer to BCD and Outputting It as a Text BOOL String ae Input_Num STRING STRING Output_String Output_String Input Variable INT Input Num Input Output Variable STRING Output String Internal Variable WORD Num BCD Check Input_BCD input parameter BCD data IF Input BCDNum gt 0 amp Input BCD lt 16 Num lt 9999 THEN 166 Restrictions Section 5 7 ENO true ELSE ENO false RETURN END IF Num BCD INT TO BCD_WORD Input_Num For example if Num is 100 16 0064 it is converted to BCD 0100 Output String WORD TO STRING Num BCD Convert BCD 0100 to text string 5 7 Restrictions
274. t be used together with specification method A in the same function block call statement E Examples of other Entry Formats e EN not entered Instance_FB FB_IN1 IN1 FB_IN2 IN2 FB_IN3 INS FB _OUT1 gt OUT1 FB_OUT2 gt OUT2 FB_OUT3 gt OUT3 ENO gt B e EN and ENO not entered Instance_FB FB_IN1 IN1 FB_IN2 IN2 FB_IN3 INS FB_OUT1 gt OUT1 FB_OUT2 gt OUT2 FB_OUT3 gt OUT3 e ENO not entered Instance_FB EN A FB_IN1 IN1 FB_IN2 IN2 FB_IN3 IN3 FB_OUT1 gt OUT1 FB_OUT2 gt OUT2 FB_OUT3 gt OUTS e FB_OUT2 data not required Instance_FB EN A FB_IN1 IN1 FB_IN2 IN2 FB_IN3 IN3 FB_OUT1 gt OUT1 FB_OUT3 gt OUT3 ENO gt B 164 Statement Descriptions Section 5 5 Instance_FB FB_IN1 IN1 FB_IN2 IN2 FB_IN3 IN3 FB OUT1 gt OUT1 FB_OUT3 gt OUT3 e Different order of entry Instance_FB EN A FB_IN1 IN1 FB_OUT1 gt OUT1 FB_IN2 IN2 FB_OUT2 gt OUT2 FB_IN3 IN3 FB_OUT3 gt OUT3 ENO gt B E Example of Entry Method 2 In this example only parameter variables including constants of a new instance are entered Instance_FB IN1 IN2 IN3 OUT1 OUT2 OUTS Instance_FB IN1 IN2 IN3 OUT1 e The arguments and return values must be listed in a fixed order Input variable 1 Input variable 2 Output variable 1 Output variable 2 e The input variables arguments must be at the beginning of the list or just after the EN variable if the EN variable is listed e An output variable can be omitted if the data i
275. t gt variable c on the Serial Communications Unit speci fied by variable b using the internal logic port specified by variable a The variable Internal_logic INT dindicates the internal logic port number RXD_CPU lt Storage_ Storage _ STRING Receives a text string RXD_CPU a b location gt lt Number_of_ location from the RS 232C port number of characters characters gt Number_of_ on the CPU Unit specified by variable b are characters received from the RS 232C port on the CPU Unit and stored in variable a RXD_SCB lt Storage_ Storage_ STRING Receives a text string RXD_SCB a b c location gt lt Number_of_ location from the serial port on number of characters Serial_port characters gt lt Serial_port gt Number of a Serial Communica specified by variable b are characters tions Board received from the serial port specified by variable c on the Serial Communications Board and stored in variable a RXD_SCU lt Storage_ Storage_ STRING Receives a text string RXD_SCU a b c d e location gt lt Number_of_ location from a serial port ona number of characters characters gt lt SCU_unit_ Number of Serial Communica specified by variable b are number gt lt Serial_port characters tions Unit received from the serial port lt Internal_logic_port gt specified by variable d on the Serial Communications Unit specified by variable c using the internal logic port specified by variable
276. t the same time a list of instances that will be affected is displayed in the Output Window EThe Function Block to be online edited is used in the following programe Te NewProgram Section 1 Step NewProgram Section 3 Step Note Affect of Function Block Definition Changes on Instances When a function block definition is changed the contents of all in stances that call that function block definition will also be changed This is illustrated below Example Function Block Definition FB1 L O I Programming changed User Program I i Affected Instance calling FB1 Instance calling FB1 a a a A list of instances that will ibe affected is displayed in ithe Output Window Change function block definitions only after considering the affect of the change on overall program operation 2 Click the Yes Button The contents of the function block definition will be displayed and can be edited Procedures Section 3 2 sample_e2 CX Programmer NewPLC1 D D_ThickSelectControl FB Ladder x Fa File Edit Yiew Insert PLC Program Tools Window Help 18 x D eH a eS A eel ejan e lo B i h AR HS BUSS Sua le xas Ce E zeem S amm O g E EEL lale ag 8x 4a A ae e E
277. ted Address W0 00 is reserved for Function Block use Program Instance data area ddress Non Retain cq wo Retain 7 Timers Counters The allocations in the function block instance area for variables are automati cally reallocated when a variable is added or deleted A single instance requires addresses in sequence however so if addresses in sequence can not be obtained all variables will be allocated different addresses As a result unused areas will be created If this occurs execute the optimization opera tion to effectively use the allocated areas and remove the unused areas A comment of up to 30 000 characters long can be entered A single instance can be called from multiple locations In this case the inter nal variables will be shared Multiple instances can be created from a single function block definition In this case the values of internal variables will be different in each instance Example Counting Product A and Product B Prepare a function block definition called Down Counter CTD and set up counters for product A and product B There are two types of programs one for automatic operation and another for manual operation The user can switch to the appropriate mode of operation In this case multiple instances will be created from a single function block The same instance must be called from multiple locations Instance Specifications Section 2 3 Pro
278. thm If it is necessary to write a value within the execution cycle of the algorithm do not write the value to a parameter Assign the value to an in ternal variable and use an AT setting Specified addresses Initial Value An initial value can be set for an output variable that is not being retained i e when the Retain Option is not selected An initial value cannot be set for an output variable if the Retain Option is selected The initial value will not be written to the output variable if the IOM Hold Bit A50012 is ON Auxiliary Area control bit Initial value IOM Hold Bit A50012 ON The initial value will not be set 34 Section 2 1 Function Block Specifications Note ENO Enable Output Variable The ENO variable is created as the default output variable The ENO output variable will be turned ON when the instance is called The user can change this value The ENO output variable can be used as a flag to check whether or not instance execution has been completed normally Input Output Variables Input output variables use addresses to pass data to and from a function block instance An input output variable is displayed on both the left and right side of the instance The value of the input output variable immediately after the instance is executed is not stored in the addresses internally allocated to the input output variable by the system but rather the value is stored in the address and following add
279. ting may result in unexpected operation timing Perform online editing only after confirming that an increased synchro nous processing time will not affect the operation of the main and slave axes Restrictions in Online Editing of Function Block Definitions 126 The following restrictions apply to online editing of function block definitions e For CJ2 series CPU Units there is no restriction on the number of steps that can be added to or deleted from a function block definition during one online editing operation e Online editing is not possible for function block definitions that exceed 4 Ksteps except for CU2 series CPU Units e A maximum of 0 5 Ksteps can be added to or deleted from a function block definition during one online editing operation except for CU2 series CPU Units e Input variables output variables and input output variables cannot be added or deleted e New function block instances cannot be added e Instance names cannot be changed Procedures Section 3 2 e Internal variables can be added internal variable comments can be changed and internal variables can be deleted from the variable table in the function block definition To add an internal variable however memory must be reserved in advance Refer to Editing Reserved Memory to Add an Internal Variable with Online Editing on page 121 for details e The previous status flags for all differentiated instructions DIFU 013 instructions DIFD 014
280. tion 3 2 Note 2 The Function Block Holding Area words are allocated in H512 to H1535 These words cannot be specified in instruction operands in the user pro gram These words can also not be specified in the internal variable s AT settings 3 Words H512 to H1535 are contained in the Holding Area but the ad dresses set as non retained will be cleared when the power is turned OFF and ON again or when operation is started 4 To prevent overlapping of instance area addresses and addresses used in the program set H512 to H1535 Function Block Holding Area words for the non retained area and retained area If there are not sufficient words use words in areas not used by the user program If another area is set the addresses may overlap with addresses that are used in the user program If the addresses in the function block instance areas overlap with any of the addresses used in the user program an error will occur when compil ing This error will also occur when a program is downloaded edited on line or checked by the user C Compiling PLC Program Name NewPLC1 NewProgram1 Section pe Section ERROR Ste am at a perk Pil pe is rese rved for Function pau use ERROR Ste site ung 0 1 0 Addre 0 01 Sedlo Function Block ERROR Step al th ng 0 2 a Addre a ooi is aiecened for Function Block u use ERROR Step at rung 0 3 0 Address W5 00 is reserved for Function Block use ERROR Step at rung 0 4 ae
281. tion Window The Function Block Invo cation Dialog Box will be displayed 3 Select the instance name that was previously registered from the pulldown menu on the FB Instance Field The instance will be created Restrictions Observe the following restrictions when creating instances Refer to 2 4 Pro gramming Restrictions for details e No more than one function block can be created in each program circuit e The rung cannot be branched to the left of an instance e Instances cannot be connected directly to the left bus bar i e an EN must always be inserted Note If changes are made in the I O variables in a variable table for a function block definition the bus bar to the left of all instances that have been created from that function block definition will be displayed in red to indicate an error When this happens select the function block right click and select Update Invoca tion The instance will be updated for any changes that have been made in the function block definition and the red bus bar display indicating an error will be cleared 3 2 5 Setting Function Block Parameters Using the Enter Key After an instance of a function block has been created input parameters must be set for input variables and output parameters must be set for output vari ables to enable external I O e Values addresses and program symbols global symbols and local sym bols can be set in input parameters See note a e Addresses and
282. tion block will be that for the size of data of the input variable Therefore an input variable cannot be used as the operand of an instruction in the function block when the operand specifies the first or last of multiple words With CX Programmer version 7 0 use Application Precautions 4 an input output variable specified as an array variable with the first address set for the input parameter and specify the first or last element of the array variable or with any version of CX Programmer use an internal variable with an AT setting Alternatively specify the first or last element in an internal variable specified as an array variable Values are passed in a batch from the input parameters to the input vari ables or input output variables before algorithm execution not at the same time as the instructions in the algorithm are executed Therefore to pass the value from a parameter to an input variable or input output vari able when an instruction in the function block algorithm is executed use an internal variable or external variable instead of an input variable or input output variable The same applies to the timing for writing values to the parameters from output variables Always use internal variables with AT settings in the following cases e The addresses allocated to Basic I O Units Special I O Units and CPU Bus Units cannot be registered to global symbols and these vari ables cannot be specified as external variabl
283. tion will be compared to the last condition when the EN input variable was ON so the Differentiation Instruction will not operate properly If the EN input variable remains ON the Differentiation Instruction will operate properly when the next rising edge or falling edge occurs Example 0 0 ee Body FB1 EN ENO LDEN T ORJN1 l IN1 OUTI SET OUT1 These Differentiation Instructions do not operate when input condition 0 00 goes from OFF to ON the first time The instructions do not operate while input condition 0 00 is OFF If Differentiation Instructions are being used always use the Always ON Flag P_On for the EN input condition and include the instruction s input condition within the function block definition ESET E E reer errr errr reer r irre errr eerie eee iia ae ee re E TT these Differentiation Instructions operate normally e Input a decimal numerical value after when specifying the first operand of the following instructions MILH 517 MILR 518 MILC 519 DIM 631 MSKS 690 MSKR 692 CLI 691 FAL 006 FALS 007 TKON 820 TKOF 821 Note amp is not supported e CNR 545 CNRX 547 RESET TIMER COUNTER instructions cannot be used to reset multiple timers and counters within a function block at the same time Always specify the same variable for the first operand timer counter num ber 1 and second operand timer counter number 2 Different variables cannot be specifi
284. to 9999 BCD 0 to 65535 binary COUNTER Counter Flag 1 bit Counter number O to 4095 PV 16 bits Completion Flag O or 1 Counter PV 0 to 9999 BCD 0 to 65535 binary FUNCTION Function block instance BLOCK Note The TIMER and COUNTER data types cannot be used in structured text func tion blocks 2 2 2 Derivative Data Types 41 Instance Specifications Section 2 3 2 3 Instance Specifications 2 3 1 Composition of an Instance Instance Name Function Block Instance Areas 42 The following table lists the items that the user must set when registering an instance tem O Description Instance name Name of the instance Language The programming and variables are the same as in Variable definitions the function block definition Function block instance areas The ranges of addresses used by the variables Comments A comment can be entered for each instance This is the name of the instance e Instance names can be up to 30 000 characters long e Instance names cannot contain spaces or any of the following characters r ER SS Hz AN L 3 lt gt 7 7 e Instance names cannot start with a number 0 to 9 There are no other restrictions The instance name is displayed above the instance in the diagram Instance name Pulse_2sON_2sOFF CLOCK PULSE EN ENO amp 20 ON_TIME e T OFF_TIME To use a function block the system requires memory to store the instance s internal variables
285. ts the function block instance areas in which addresses are allo cated internally by the system The variables are allocated automatically by the system to the appropriate instance area set by the user Setting Procedure Select Function Block SFC Memory Function Block SFC Memory Allo cation from the PLC Menu Set the areas in the Function Block SFC Memory Allocation Dialog Box 21 Variables 22 Note Note Section 1 3 Function Block Instance Areas CJ2 series CPU Units FB Instance Default value Applicable memory Area Start address End address Size arcas Non Retain H512 H1407 896 CIO WR HR DM EM See note H1408 H1535 HR DM EM See note Timers roz rws joz Counters C3072 C4095 1024 Force setting resetting is enabled when the following EM banks are specified CJ2H CPU64 EIP CPU65 EIP EM bank 3 CJ2H CPU66 EIP EM banks 6 to 9 CJ2H CPU67 EIP EM banks 7 toE CJ2H CPU68 EIP EM banks 11 to 18 CS CJ series CPU Units Ver 3 0 or Later and NSJ Controllers FB Instance Applicable memory Sikes emaa l endediress Sie seat Non Retain FQM1 Flexible Motion Controllers FB Instance Applicable memory CP series CPU Units FB Instance Default value Applicable memory Area Start address End address Size aces H512 H1407 CIO WR HR DM See note H1408 H1535 HR DM See note Counters C3072 C05 1024 DM area of CP1L L CPLL D0000 to D9999 D10000 to D31
286. turns and tabs cannot be used between the following tokens the smallest meaningful unit for compiling in which case they are referred to as token separators Tokens Reserved words variable names special characters constants numerical values Reserved words upper or lower case AND CASE DO ELSE FOR IT NOT OF OR REPEAT THEN TO UNTIL WHILE XOR TRUE FALSE ELSIF BY EXIT RETURN Variable names Any text that is not a reserved word will be recognized as a variable name Special characters a SSeS nel Constants numerical values e Numerical value only for decimal numbers e 16 followed by numerical value for hexadecimal numbers e 2 followed by numerical value for binary numbers e 8 followed by numerical value for octal numbers If a Space carriage return or tab is used between any of the above tokens the parts of the token on either side will be treated as separate tokens Therefore make sure that spaces carriage returns or tabs are not used within a single token 138 Inputting ST Programs Section 5 3 e Always use a space carriage return tab or other token separator between reserved words and variable names Using token separators between other token combinations is optional In the following example the box L indicates where a space carriage return tab or other token separator is required TFLJA gt OTHENL X 10 ELSEL X 0 END IF Upper and Lower Case e Reserved words
287. urn Description value data type WRITE_TEXT lt Write_string gt Write_string STRING Writes a text WRITE_TEXT a b c d aa Directory STRING string toa text string a is written to a file name gt lt Delimiter gt lt Parame name and_ Memory with the file name and directory ter gt file name Card specified by variable b if variable Tae dis O the text string is added to SLANG the file along with delimiter speci Parameter fied by variable c if variable dis 1 a new file is created Communications The following functions can be used with CS CJ series CPU Units with unit Functions version 4 0 or later or CJ2 series CPU Units Argument data type Return Description value data type TXD_CPU lt Send_string gt Send_string STRING Sends a text string to TXD_CPU a the RS 232C porton text patie ais sent from the CPU Unit the RS 232C port on the CPU Unit TXD _SCB lt Send_ string gt STRING S Sends a text string to TXD_SCB a b Serial Communica the serial port specified by variable b on the Serial Communications Board tions Board 146 ST Language Configuration Section 5 4 Argument data type Return Description value data type TXD_SCU lt Send_string gt STRING Sends a text string toa TXD_SCU a b c d eo eee SCU L unit serial port on a Serial text string a is sent from lt Serial_port gt lt Internal___ number Communications Unit the serial port specified by logic_por
288. used in the function block is displayed on top and an input area for the ladder program or struc tured text is displayed on the bottom 28 Untitled CX Programmer NewPLC1 FunctionBlocki FB Ladder File Edit View Insert PLC Program Tools Window Help OSE RGR sBB VS MEB CK HAS Sa Lu RAR AHR POPP a we ja XQ S BIBER a OSB BSE amp Og 12 ea Ee RADA e 2 P A B 2 es Sve ee gt Slee Name DataType AT Initial y Ret Comment 1 NewProject wonrCEiCHEH Ofte im Symbols T 10 Table Settings lt Mi I S aed ne AAE earn Ladder input area B 3 NewProgram1 00 7 Variable table i sx Symbols 8 Section1 END 4UF Function Blocks F FunctionBlock1 Untitled CX Programmer NewPLC1 FunctionBlock2 FB Structured Tex 1 File Edit View Insert PLC Program Tools Window Help DOSER ER SOC MeBl eK lOSSEa 4u RAR RHA STP sw K QP Ss Sem S 4k 4ew O GO GGL amp 3 SB 2 Aw 2 Po Eee e RAAA S ee Pw lm a ye oe elo e TT E r T iilx f Name Datatype at Initial v Ret Comment NewProject St Symbols A Programs Outputs Externals 3 NewProgram1 00 z Symbols Pa input area Section1 amp END 4TF Function Blocks EF FunctionBlock1 F FunctionBlock2 J Variable table As shown a function block definition consists of a variable table that serves as an interface and a ladder program or structured text that serves a
289. using func tion blocks Function block algorithms can be written in the ladder programming lan guage or in the structured text ST language See note e When ladder programming is used ladder programs created with non CX Programmer Ver 4 0 or earlier can be reused by copying and past ing e When ST language is used it is easy to program mathematical pro cesses that would be difficult to enter with ladder programming Note The ST language is an advanced language for industrial control primarily Programmable Logic Controllers that is described in IEC 61131 3 The ST language supported by CX Programmer con forms to the IEC 61131 3 standard Function blocks can be created easily because variables do not have to be declared in text They are registered in variable tables A variable can be registered automatically when it is entered in a ladder or ST program Registered variables can also be entered in ladder programs after they have been registered in the variable table A single function block can be converted to a library function as a single file making it easy to reuse function blocks for standard processing A program check can be performed on a single function block to easily confirm the function block s reliability as a library function Programs containing function blocks ladder programming language or structured text ST language can be downloaded or uploaded in the same way as standard programs that do not cont
290. utput Variables to Return FB Processing Results from Values Passed from Input Parameters to Output Parameters Input Output Array Variables to Pass Large Amounts of Data 58 To paste into the program and then pass values outside the program from the function block for each instance or monitor values use output variables Program Instance for function block definition A The actual value is Variable for passing a value outside or monitoring Use an output variable The following restrictions apply e Values are passed from output variables to output parameters all at once after algorithm execution An input output variable can be used to implement the functionality of both input and output parameters Internal operation involves passing the address set for the parameter to the input output variable but the use of the input out put variable inside the function block is the same as that of other variables Program Section Instance of FB definition A Specify an address for the input parameter the address will be passed to the FB D100 Selo D100 can be used in the rest of the program after being changed in the FB Use an input output variable to imple ent Contents can be changed in the FB both input and output variable functions while changing the value_in the FB This address gt D100 a indicates D100 is passed Example WORD data type Input output variables can be set a
291. variables Input constants directly into instruction operands e Ladder programming Enter decimal values after the amp and enter hexadecimal numerical values after the Data Types Supported in Function Blocks Section 2 2 e Structured text ST language Enter decimal numerical values as is and enter hexadecimal numerical values after 16 Comment A comment of up to 30 000 characters long can be entered 2 2 Data Types Supported in Function Blocks 2 2 1 Basic Data Types Datatype Content sze Rangeotvaiues Dnt Double mtego a2 214748364810 42147488647 LINT Long 8 byte integer 9 223 372 036 854 775 808 to 9 223 372 036 854 775 807 UINT Unsigned integer amp 0 to 65 535 UDINT Unsigned double integer amp 0 to 4 294 967 295 ULINT Unsigned long 8 byte amp 0 to 18 446 744 073 709 551 615 integer REAL Real number 3 402823 x 10 8 to 1 175494 x 10 8 0 1 175494 x 1078 to 3 402823 x 10 8 LREAL Long real number 64 1 79769313486232 x 10 98 to 2 22507385850720 x 107908 0 2 22507385850720 x 10 298 to 1 79769313486232 x 10908 WORD 16 bit data 0000 to FFFF or amp 0 to 65 535 DWORD 32 bit data 00000000 to FFFFFFFF or amp 0 to 4 294 967 295 LWORD 64 bit data 64 0000000000000000 to FFFFFFFFFFFFFFFF or amp 0 to 18 446 744 073 709 551 615 STRING Text string See note 1 to 255 ASCII characters TIMER Timer Flag 1 bit Timer number O to 4095 PV 16 bits Completion Flag O or 1 Timer PV 0
292. xternal variable However it is impossible to externally reference the variables user defined as a network symbol Variable Properties Variable Name The variable name is used to identify the variable in the function block The name can be up to 30 000 characters long The same name can be used in other function blocks Note A variable name must be input for variables even ones with AT settings spec ified address Data Type Any of the following types may be used Datatype Content Size Inputs Outputs In Out Internals 22 bits LINT Long 4 word integer 64 bits OK ULINT Unsigned long 4 word integer 64 bits OK 16 bits 32 bits O OK OK OK OK PV 16 bits ported ported ported PV 16 bits ported ported ported ported ported ported Note 1 The TIMER data type is used to enter variables for timer numbers 0 to 4095 in the operands for TIMER instructions TIM TIMH etc When this variable is used in another instruction the Timer Completion Flag 1 bit or the timer present value 16 bits is specified depending on the in struction operand The TIMER data type cannot be used in structured text function blocks 2 The COUNTER data type is used to enter variables for counter numbers O to 4095 in the operands for COUNTER instructions CNT CNTR etc When this variable is used in another instruction the Counter Com pletion Flag 1 bit or the counter present value 16 bits is specified de pending
293. y Step Run Continuous status operation or the Pause Step Run Button Regular color Not executed due to Step is not being exe interlock or other cuted because of an function instruction such as IL MILR MILH JMPO or FOR BREAK Break point Simulator instruction Paused break status break a break lets Note When Tools Simulation Always Display Current Execution Point has been selected the Simulator automatically scrolls the display to show the paused point in the instance when performing Step Run or Continu ous Step Run operation 2 The color of the cursor or arrow in an ST program which indicates when an operation has been paused in the Simulation Function Window can be changed from its default color To change the color select Tools Options and click the Appearance Tab Select Pause Simulator Simulator Instruction Break or Simulator IO Break and change the color for that condition m Break Point Operation in an Instance Execution can be paused automatically at the preset break point in the instance In this case the Step In operation cannot be used Note When a break point is set for an instance the break point is valid for that instance only The break point is not valid for other instances created from the same function block definition Procedures Section 3 2 3 2 19 Online Editing Function Block Definitions Ladder diagrams for ST programs in function block definitions can be edited eve
294. ype that is passed from the function block Even if an input source address i e an input parameter or an output desti nation address i e an output parameter is a word address the data that is passed will be the data in the form and size specified by the variable data type starting from the specified word address Program Instance of Function Block Definition A Input D100 Output D300 Input D200 Examples If m is type WORD one word of data from D100 will be passed to the variable If n is type DWORD two words of data from D200 and D201 will be passed to the variable If k is type LWORD four words of data from the variable will be passed to the D300 to D303 1 Only addresses in the following areas can be used as parameters CIO Area Auxiliary Area DM Area EM Area banks 0 to C Holding Area and Work Area The following cannot be used Index and Data Registers both direct and indirect specifications and indirect addresses to the DM Area and EM Area both in binary and BCD mode 2 Local and global symbols in the user program can also be specified as parameters To do so however the data size of the local or global symbol must be the same as the data size of the function block variable 3 When an instance is executed input values are passed from parameters to input variables before the algorithm is processed Output values are 15 Function Blocks 16 Section 1 2 passed from output var
295. ypes Used in ST Programs The following tables show the data types used in ST programs For details on the data types that can be used in ST programs within function blocks refer to Part 1 Function Blocks in this manual 5 2 1 Basic Data Types Datatype Content Swe Rangeotvaues DNT Douvieimeger fee 2 147 483 648 104214748307 LINT Long 8 byte integer 9 223 372 036 854 775 808 to 9 223 372 036 854 775 807 UINT Unsigned integer amp 0 to 65 535 UINTBCD Unsigned BCD integer See note 1 UDINT Unsigned double integer amp 0 to 4 294 967 295 UDINT BCD Unsigned double BCD See note 1 integer ULINT Unsigned long 8 byte 64 amp 0 to 18 446 744 073 709 551 615 integer ULINT BCD Unsigned long 8 byte See note 1 BCD integer REAL Real number 3 402823 x 10 8 to 1 175494 x 10798 0 1 175494 x 10738 to 3 402823 x 1098 LREAL Long real number 64 1 79769313486232 x 10 08 to 2 22507385850720 x 107908 0 2 22507385850720 x 1079308 to 1 79769313486232 x 10908 WORD 16 bit data 0000 to FFFF or amp 0 to 65 535 DWORD 32 bit data 00000000 to FFFFFFFF or amp 0 to 4 294 967 295 LWORD 64 bit data 64 0000000000000000 to FFFFFFFFFFFFFFFF or amp 0 to 18 446 744 073 709 551 615 STRING Tedsting rae OOOO FUNCTION Function block instance BLOCK CHANNEL Word eene NUMBER Constant or number Sa See note 2 Note 1 In ST programs these data types are recognized as the following data types e UNIT BCD is
Download Pdf Manuals
Related Search
Related Contents
MINIO DE PLOMO ELECTROLITICO Point of View VGA-440-A1-1024-C NVIDIA GeForce GT 440 1GB graphics card FNX0552 Makita EX2650LH Instruction manual MAESTRO 12 / 18 SW - Horsch Maschinen GmbH Mode d`emploi Copyright © All rights reserved.
Failed to retrieve file