1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 | //This is a rung comment (*Also a rung comment*) (**Mabe a nicer * Way to do multiline comments *) (** supported features: * 001 ‘Network’ * 002 ‘Box’ * 002 ‘Assignment’ * (003 FB, 003 FN) ‘Box with EN/ENO’ * 002 ‘Input’ * 005 ‘Label’ * 005 ‘Contact’ * 005 ‘Coil’ * 005 Negated Contant * 006 Branches (note, branches always close!) * 007 Set coil * 007 Reset coil * 008 short circuit evaluation (SCE) (Toggle Parallel Mode) (I dislike this enough I make you use extended ascii) * 008 Negation (I dislike this enough I make you use extended ascii) * 009 Jump * 010 Return * 011 Network Comment State * 012 FBD/LD/IL Element ‘Execute’ * 013 Names are too long (abreviation section) * I think that's everything actually. *) (** Declaration Section: * Exact copy of the declaration section, with some indentation * Note any indentation that is the same for each line will be removed *) {Declaration} PROGRAM POU VAR END_VAR {/Declaration} (** Abbreviation Section: * Sure it can get confusing. Maybe later can alter it so not fixed width ladder * For importing, it is OK to change the abbrevioations however you please * Rules: Generally if too long: * take first three letters and last three and add a ~0 through ~9 * If more than 10 have same first three and same last three, the 11th becomes ~~10 * If there is one or more points in the variable name, shorten the first three and but the point before the ~ *) {Abbreviaitons} Nam~0GHT := NameEIGHT; Nam~1GHT := NameONE_HUNDRED_AND_EIGHT; Nam~2GHT := NameI_CANT_WEIGHT; F_C~0ate := F_Calculate; FB.~0ate := FB_Timer.Calculate; {/Abbreviations} (** Execution Section: * If the execution block is too big to fit, * either width ways or column ways, write it's Execution here. * Note any indentation that is the same for each line will be removed *) {Executions} {~1} thisvariable := actuallyToolong; REsult := Function(); //I added a comment //If line too long it gets truncated // >6 line, ~ bottom right IF TRUE THEN DoSomethingCool; END_IF; {/~1} {/Executions} {Ladder} 001 ||. . . . . . || || || ||------------------------------------------------------------|| || || 002 ||. . . ________ . || || NameEIGH | F_Name | NameEIGH || ||----] [------------------------Input_01|--------------( )---|| || Variable==In_out01| || || =InOut2 | || || Variable--Input2 | || || =InOut3 | || || | Out01--Variable || || | Out02--Variable || || |________| || || || 003 ||. . . ________ . || || NameEIGH NameEIGH Instance--FB_Name8| NameEIGH || ||----] [-------] [--------------EN ENO---------------( )---|| || -Input01 | || || | Out01- || || =In_out01| || || =Inout2 | || || |________| || || || 004 ||. . . ________ . || || NameEIGH | F_Name | NameEIGH || ||----] [------------------------EN ENO---------------( )---|| || Variable--Input01 | || || | Out01--Variable || || Variable==In_out01| || || Variable==Inout2 | || || |________| || || || 005 ||. . . . . . || myLabel || NameEIGH NameEIGH NameEIGH || ||----] [-------]/[-------------------------------------( )---|| || || 006 ||. . . . . . || || NameEIGH NameEIGH NameEIGH || ||+---] [--++---] [------------+------------------------( )---|| ||| || | || ||| || . | || |||NameEIGH||NameEIGH NameEIGH| || ||+---] [--++---] [-------]/[--+ || || || 007 ||. . . . . . || || NameEIGH NameEIGH NameEIGH || ||----------------------------------(R)-------(S)---+---(S)--+|| || | ||| || | ||| || |NameEIGH||| || +---(R)--+|| || || 008 ||. . . . . . || || NameEIGH ASCII181 NameEIGH || ||----] [---╬---] [--------------------------------╬----( )---|| || ║ ║ || || ║ . ________ ║ || || ║ASCII206 Instance--FB_Name8| ║ || || ╬---] [--------------EN ENO----------╬ || || NegInVarø-Input01 | || || | Out01-øASCII155 || || =In_out01| || || =Inout2 | || || |________| || || || 009 ||. . . . . . || || myLabel || ||----------------------------------------------------<JUMP>--|| || || 010 ||. . . . . . || || || ||---------------------------------------------------<RETURN>-|| || || 011 ||##. . . . . . || ||## NameEIGH || ||##----] [--------------------------------------------<RETURN>-|| ||## || 012 ||. . . __________________________ . || || NameEIGH | Execute ~1 | || ||----] [---------------EN ENO------------|| || |thisvariable := actuallyT~| || || |REsult := Function(); | || || |//I added a comment | || || |//If line too long it get~| || || |// >6 line, ~ bottom right| || || |IF TRUE THEN | || || |_________________________~| || || || 013 ||. . . ________ . || || FB.~0ate Nam~1GHT |F_C~0ate| Nam~2GHT || ||----] [---+---] [--------------EN ENO----------+----( )---|| || | NegInVarø-Input01 | | || || | | Out01-øASCII155| || || | =In_out01| | || || | =Inout2 | | || || | |________| | || || | . ________ | || || |Nam~0GHT Instance--FB_Timer| | || || +---] [--------------EN ENO----------+ || || NegInVarø-Input01 | || || | Out01-øASCII155 || || =In_out01| || || =Inout2 | || || |________| || || || {/Ladder} |