Hi I'm trying to get a stepper motor example to compile that makes the following reference:
if(!Read_Ib_scratch()) {
if(!Read_Ib_once_1_isIniPERSIST_Lenght()) {
Write_Ib_once_1_isIniPERSIST_Lenght(1);
Ui_Lenght = EEPROM_read(0 );
Ui_Lenght |= (uint16_t)EEPROM_read(1) << 8;
its code that generated by the LDmicro compiler. I've added this reference in my .ino file:
#include "RomLib.h" which has the following declaration:
unsigned char EEPROM_read(uint16_t address);
When I compile this in the Arduino IDE (1.8.14) I get this error: "Invalid Reference to 'EEPROM_read(unsigned int)"
Using a Mega 2560
How do I go about troubleshooting this error? I've added RomLib.h to my sketch folder just in case the compiler was having trouble referencing it. I appreciate any assistance. Thanks in advance.
pert
June 22, 2021, 10:15pm
2
I'm going to ask you to post some additional information that might help us to identify the problem.
Please do this:
When you encounter an error, you'll see a button on the right side of the orange bar in the Arduino IDE: Copy error messages (or the icon that looks like two pieces of paper at the top right corner of the black console window in the Arduino Web Editor). Click that button.
Open a forum reply here by clicking the Reply button.
Click the </>
icon on the post composer toolbar. This will add the forum's code block markup (```
) to your reply to make sure the error messages are correctly formatted.
Press Ctrl +V . This will paste the compilation output into the code block.
Move the cursor outside of the code block markup before you add any additional text to your reply.
Click the Reply button to post the output.
Did you mean "EEPROM.read(0);"? EEPROM is an object and read() is a member function.
no, the code was written by a code compiler from LDmicro so I'm assuming it is meant to be written as is. I'm just getting back into C coding after many years so I might not get the type casting of variables correctly but that what this seems like to me but I'm far from being an expert. Thanks for the reply
OK. I guess something is wrong with the library or generated code. I can't tell much from the tiny bit of code posted.
Hi All, I tried to attach the files but as a "Newbie" I'm not allowed to do so. I've created another post for the offending code. These errors are occurring in the DriverStepMotorMerge.cpp code starting at line 390. I'm assuming that the UART related errors are of a similar cause. I've include Romlib.c and .h in my project folder and added a "include Romlib.h" line in the main code prior to *void setup()*
I tried to attach the files but as a "Newbie" I'm not allowed to do so. I've created another post for the offending code.
The Error code from this compile:
Arduino: 1.8.14 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\q1453442\Documents\Arduino\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10814 -build-path C:\Users\q1453442\AppData\Local\Temp\arduino_build_114311 -warnings=none -build-cache C:\Users\q1453442\AppData\Local\Temp\arduino_cache_73571 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge\DriverStepMotorMerge.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\q1453442\Documents\Arduino\libraries -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10814 -build-path C:\Users\q1453442\AppData\Local\Temp\arduino_build_114311 -warnings=none -build-cache C:\Users\q1453442\AppData\Local\Temp\arduino_cache_73571 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge\DriverStepMotorMerge.ino
Using board 'mega' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\sketch\\DriverStepMotorMerge.ino.cpp" -o nul
Using cached library dependencies for file: C:\Users\q1453442\AppData\Local\Temp\arduino_build_114311\sketch\DriverStepMotorMerge.cpp
Using cached library dependencies for file: C:\Users\q1453442\AppData\Local\Temp\arduino_build_114311\sketch\RomLib.c
Generating function prototypes...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\sketch\\DriverStepMotorMerge.ino.cpp" -o "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
Using previously compiled file: C:\Users\q1453442\AppData\Local\Temp\arduino_build_114311\sketch\RomLib.c.o
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10814 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\mega" "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\sketch\\DriverStepMotorMerge.ino.cpp" -o "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\sketch\\DriverStepMotorMerge.ino.cpp.o"
Using previously compiled file: C:\Users\q1453442\AppData\Local\Temp\arduino_build_114311\sketch\DriverStepMotorMerge.cpp.o
Compiling libraries...
Compiling core...
Using precompiled core: C:\Users\q1453442\AppData\Local\Temp\arduino_cache_73571\core\core_arduino_avr_mega_cpu_atmega2560_0c812875ac70eb4a9b385d8fb077f54c.a
Linking everything together...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega2560 -o "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311/DriverStepMotorMerge.ino.elf" "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\sketch\\RomLib.c.o" "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\sketch\\DriverStepMotorMerge.cpp.o" "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311\\sketch\\DriverStepMotorMerge.ino.cpp.o" "C:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311/..\\arduino_cache_73571\\core\\core_arduino_avr_mega_cpu_atmega2560_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\\Users\\q1453442\\AppData\\Local\\Temp\\arduino_build_114311" -lm
C:\Users\q1453442\AppData\Local\Temp\ccRAM5D2.ltrans0.ltrans.o: In function `PlcCycle':
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:390: undefined reference to `EEPROM_read(unsigned int)'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:391: undefined reference to `EEPROM_read(unsigned int)'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:410: undefined reference to `EEPROM_write(unsigned int, unsigned char)'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:1605: undefined reference to `UART_Transmit_Ready()'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:393: undefined reference to `EEPROM_read(unsigned int)'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:394: undefined reference to `EEPROM_read(unsigned int)'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:1760: undefined reference to `UART_Transmit(unsigned char)'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:1799: undefined reference to `UART_Transmit_Ready()'
C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ARDUINO\DriverStepMotorMerge/DriverStepMotorMerge.cpp:1974: undefined reference to `UART_Transmit(unsigned char)'
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compiling for board Arduino Mega or Mega 2560.
Here's the DriverStepMotorMerge.ccp code that the compiler is complaining about:
/* This is auto-generated C code from LDmicro. Do not edit this file! Go
back to the LDmicro ladder diagram source for changes in the ladder logic, and make
any C additions either in ladder.h or in additional .c or .h files linked
against this one. */
/* You must provide ladder.h; there you must provide:
a typedef for SWORD and BOOLEAN_t, signed 16 bit and boolean types
(probably typedef signed short SWORD; typedef unsigned char bool;)
You must also provide implementations of all the I/O read/write
either as inlines in the header file or in another source file. (The
I/O functions are all declared extern.)
See the generated source code (below) for function names. */
#include "ladder.h"
#include "DriverStepMotorMerge.h" // Copy this line into main project file where is function main().
/* Ux_xxx symbols correspond to user-defined names. There is such a symbol
for every internal relay, variable, timer, and so on in the ladder
program. Ix_xxx symbols are internally generated. */
/* Ix_xxx
Ux_xxx
^
b means bool type
i means int type */
/* Define EXTERN_EVERYTHING in ladder.h if you want all symbols extern.
This could be useful to implement `magic variables,' so that for
example when you write to the ladder variable duty_cycle, your PLC
runtime can look at the C variable U_duty_cycle and use that to set
the PWM duty cycle on the micro. That way you can add support for
peripherals that LDmicro doesn't know about. */
_STATIC_ BOOLEAN_t Ib_once_0_INIT_VARS = 0;
_STATIC_ SWORD Ui_T_lcd_off = 0;
_STATIC_ BOOLEAN_t Ib_mcr = 0;
_STATIC_ BOOLEAN_t Ib_rung_top = 0;
_STATIC_ BOOLEAN_t Ub_RAlwaysOn = 0;
_STATIC_ BOOLEAN_t Ib_parThis_0 = 0;
_STATIC_ BOOLEAN_t Ub_RX_All_OK = 0;
_STATIC_ BOOLEAN_t Ub_RX_for_1 = 0;
_STATIC_ BOOLEAN_t Ub_RX_for_10 = 0;
_STATIC_ SWORD Ui_T_Protect = 0;
_STATIC_ BOOLEAN_t Ub_R_Prot = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_up(void) {
return digitalRead(pin_Ub_X_up);
}
#endif
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_down(void) {
return digitalRead(pin_Ub_X_down);
}
#endif
_STATIC_ SBYTE Ii_EepromPostponeBytesCounter = 0;
_STATIC_ BOOLEAN_t Ib_scratch = 0;
_STATIC_ BOOLEAN_t Ib_once_1_isIniPERSIST_Lenght = 0;
_STATIC_ SWORD Ui_Lenght = 0;
_STATIC_ SWORD Ii_tmpVar2byte = 0;
_STATIC_ SDWORD Ii_EepromPostponeBytes = 0;
_STATIC_ BOOLEAN_t Ib_once_2_isWrPERSIST_Lenght = 0;
_STATIC_ BOOLEAN_t Ub_R_Manual = 0;
_STATIC_ BOOLEAN_t Ib_parThis_1 = 0;
_STATIC_ BOOLEAN_t Ib_once_3_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_once_4_ONE_SHOT_RISING = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_for_100(void) {
return digitalRead(pin_Ub_X_for_100);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_5_ONE_SHOT_RISING = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_for_1000(void) {
return digitalRead(pin_Ub_X_for_1000);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_6_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_parThis_2 = 0;
_STATIC_ BOOLEAN_t Ib_once_7_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_once_8_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_once_9_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_once_a_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_parOut_0 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_3 = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_XInMode(void) {
return digitalRead(pin_Ub_XInMode);
}
#endif
_STATIC_ BOOLEAN_t Ib_parThis_4 = 0;
_STATIC_ BOOLEAN_t Ub_R_Hand = 0;
_STATIC_ BOOLEAN_t Ub_R_Auto = 0;
_STATIC_ BOOLEAN_t Ib_parThis_5 = 0;
_STATIC_ BOOLEAN_t Ib_parOut_1 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_6 = 0;
_STATIC_ BOOLEAN_t Ib_once_b_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_once_c_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ib_once_d_ONE_SHOT_RISING = 0;
#ifndef USE_MACRO
// LDmicro provide these functions.
BOOLEAN_t Read_Ub_Y_LED_Manual(void) {
return digitalRead(pin_Ub_Y_LED_Manual);
}
void Write_Ub_Y_LED_Manual(BOOLEAN_t b) {
digitalWrite(pin_Ub_Y_LED_Manual,b);
}
void Write1_Ub_Y_LED_Manual(void) {
digitalWrite(pin_Ub_Y_LED_Manual,HIGH);
}
void Write0_Ub_Y_LED_Manual(void) {
digitalWrite(pin_Ub_Y_LED_Manual,LOW);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_e_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ub_R_Automatic = 0;
_STATIC_ BOOLEAN_t Ib_once_f_ONE_SHOT_RISING = 0;
#ifndef USE_MACRO
// LDmicro provide these functions.
BOOLEAN_t Read_Ub_Y_LED_Automatic(void) {
return digitalRead(pin_Ub_Y_LED_Automatic);
}
void Write_Ub_Y_LED_Automatic(BOOLEAN_t b) {
digitalWrite(pin_Ub_Y_LED_Automatic,b);
}
void Write1_Ub_Y_LED_Automatic(void) {
digitalWrite(pin_Ub_Y_LED_Automatic,HIGH);
}
void Write0_Ub_Y_LED_Automatic(void) {
digitalWrite(pin_Ub_Y_LED_Automatic,LOW);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_10_ONE_SHOT_RISING = 0;
_STATIC_ SWORD Ui_speed = 0;
_STATIC_ BOOLEAN_t Ib_parThis_7 = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_faster(void) {
return digitalRead(pin_Ub_X_faster);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_11_ONE_SHOT_RISING = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_slower(void) {
return digitalRead(pin_Ub_X_slower);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_12_ONE_SHOT_RISING = 0;
_STATIC_ SWORD Ui_accum = 0;
_STATIC_ BOOLEAN_t Ib_parThis_8 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_9 = 0;
_STATIC_ BOOLEAN_t Ub_R_step = 0;
_STATIC_ SWORD Ui_seq = 0;
_STATIC_ BOOLEAN_t Ib_parThis_a = 0;
_STATIC_ BOOLEAN_t Ub_R_takt = 0;
_STATIC_ BOOLEAN_t Ub_R_Material = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_Start(void) {
return digitalRead(pin_Ub_X_Start);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_13_ONE_SHOT_RISING = 0;
_STATIC_ BOOLEAN_t Ub_R_Aut = 0;
_STATIC_ BOOLEAN_t Ib_parOut_2 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_b = 0;
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_Stop(void) {
return digitalRead(pin_Ub_X_Stop);
}
#endif
_STATIC_ SWORD Ui_Count = 0;
_STATIC_ BOOLEAN_t Ib_parOut_3 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_c = 0;
_STATIC_ BOOLEAN_t Ub_R_LCD = 0;
#ifndef USE_MACRO
// LDmicro provide these functions.
BOOLEAN_t Read_Ub_Y_LED_AUT(void) {
return digitalRead(pin_Ub_Y_LED_AUT);
}
void Write_Ub_Y_LED_AUT(BOOLEAN_t b) {
digitalWrite(pin_Ub_Y_LED_AUT,b);
}
void Write1_Ub_Y_LED_AUT(void) {
digitalWrite(pin_Ub_Y_LED_AUT,HIGH);
}
void Write0_Ub_Y_LED_AUT(void) {
digitalWrite(pin_Ub_Y_LED_AUT,LOW);
}
#endif
_STATIC_ BOOLEAN_t Ib_once_14_ONE_SHOT_RISING = 0;
_STATIC_ SWORD Ui_izbr = 0;
_STATIC_ BOOLEAN_t Ib_parThis_d = 0;
_STATIC_ BOOLEAN_t Ub_RX_Forward = 0;
_STATIC_ BOOLEAN_t Ub_RX_Reverse = 0;
_STATIC_ BOOLEAN_t Ib_parOut_4 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_e = 0;
_STATIC_ BOOLEAN_t Ib_parOut_5 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_f = 0;
_STATIC_ BOOLEAN_t Ib_parOut_6 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_10 = 0;
#ifndef USE_MACRO
// LDmicro provide these functions.
BOOLEAN_t Read_Ub_Y_Steps_for_Motor(void) {
return digitalRead(pin_Ub_Y_Steps_for_Motor);
}
void Write_Ub_Y_Steps_for_Motor(BOOLEAN_t b) {
digitalWrite(pin_Ub_Y_Steps_for_Motor,b);
}
void Write1_Ub_Y_Steps_for_Motor(void) {
digitalWrite(pin_Ub_Y_Steps_for_Motor,HIGH);
}
void Write0_Ub_Y_Steps_for_Motor(void) {
digitalWrite(pin_Ub_Y_Steps_for_Motor,LOW);
}
#endif
_STATIC_ BOOLEAN_t Ib_parOut_7 = 0;
_STATIC_ BOOLEAN_t Ib_parThis_11 = 0;
#ifndef USE_MACRO
// LDmicro provide these functions.
BOOLEAN_t Read_Ub_Y_Direction(void) {
return digitalRead(pin_Ub_Y_Direction);
}
void Write_Ub_Y_Direction(BOOLEAN_t b) {
digitalWrite(pin_Ub_Y_Direction,b);
}
void Write1_Ub_Y_Direction(void) {
digitalWrite(pin_Ub_Y_Direction,HIGH);
}
void Write0_Ub_Y_Direction(void) {
digitalWrite(pin_Ub_Y_Direction,LOW);
}
#endif
#ifndef USE_MACRO
// LDmicro provide this function.
BOOLEAN_t Read_Ub_X_Foto_Cell(void) {
return digitalRead(pin_Ub_X_Foto_Cell);
}
#endif
_STATIC_ SWORD Ui_T_On_foto = 0;
_STATIC_ SWORD Ui_T_Off_foto_cell = 0;
_STATIC_ SWORD Ui_T_lcd_on = 0;
_STATIC_ BOOLEAN_t Ib_once_15_ONE_SHOT_FALLING = 0;
_STATIC_ BOOLEAN_t Ib_once_16_FMTD_STR = 0;
_STATIC_ SWORD Ii_fmtd_0_seq = 0;
_STATIC_ BOOLEAN_t Ib_fmtd_3_doSend = 0;
_STATIC_ SWORD Ii_seqScratch = 0;
_STATIC_ SWORD Ii_scratch = 0;
_STATIC_ SWORD Ii_charToUart = 0;
_STATIC_ SWORD Ii_fmtd_1_convertState = 0;
_STATIC_ BOOLEAN_t Ib_fmtd_2_isLeadingZero = 0;
_STATIC_ BOOLEAN_t Ib_once_17_ONE_SHOT_FALLING = 0;
_STATIC_ BOOLEAN_t Ib_once_18_FMTD_STR = 0;
_STATIC_ SWORD Ii_fmtd_4_seq = 0;
_STATIC_ BOOLEAN_t Ib_fmtd_7_doSend = 0;
_STATIC_ SWORD Ii_fmtd_5_convertState = 0;
_STATIC_ BOOLEAN_t Ib_fmtd_6_isLeadingZero = 0;
/* Call this function once per PLC cycle. You are responsible for calling
it at the interval that you specified in the LDmicro MCU configuration when you
generated this code. */
void PlcCycle(void) {
// INIT TABLES
// INIT VARS
if(!Read_Ib_once_0_INIT_VARS()) {
Write_Ib_once_0_INIT_VARS(1);
Ui_T_lcd_off = 249;
}
Write_Ib_mcr(1);
// ======= START RUNG 1 =======
LabelRung1:;
// ALways On coil to bypass the All OK input button. Remove when
// ======= START RUNG 2 =======
LabelRung2:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_COIL
Write_Ub_RAlwaysOn(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 3 =======
LabelRung3:;
// Protection
// ======= START RUNG 4 =======
LabelRung4:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parThis_0(Read_Ib_rung_top());
// ELEM_COIL
Write_Ub_RX_All_OK(Read_Ib_parThis_0());
Write_Ib_parThis_0(Read_Ib_rung_top());
// ELEM_COIL
if(Read_Ib_parThis_0()) {
Write_Ub_RX_for_1(0);
} else {
Write_Ub_RX_for_1(1);
}
Write_Ib_parThis_0(Read_Ib_rung_top());
// ELEM_COIL
if(Read_Ib_parThis_0()) {
Write_Ub_RX_for_10(0);
} else {
Write_Ub_RX_for_10(1);
}
// ] finish parallel
// ] finish series
// ======= START RUNG 5 =======
LabelRung5:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_TON T_Protect 500000
if(Read_Ib_rung_top()) {
if(Ui_T_Protect < 2499) {
Write_Ib_rung_top(0);
Ui_T_Protect++;
}
} else {
Ui_T_Protect = 0;
}
// ELEM_COIL
Write_Ub_R_Prot(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 6 =======
LabelRung6:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Prot()) {
Write_Ib_rung_top(0);
}
// ELEM_MASTER_RELAY
if(!Read_Ib_mcr()) {
Write_Ib_mcr(1);
} else {
Write_Ib_mcr(Read_Ib_rung_top());
}
// ] finish series
// ======= START RUNG 7 =======
LabelRung7:;
// Memory
// ======= START RUNG 8 =======
LabelRung8:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(Read_Ub_X_up()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(Read_Ub_X_down()) {
Write_Ib_rung_top(0);
}
// ELEM_PERSIST
if(Read_Ib_rung_top()) {
if(Ii_EepromPostponeBytesCounter != 0) {
} else {
Write0_Ib_scratch(); // dummy // 0 = EEPROM is ready
if(!Read_Ib_scratch()) {
if(!Read_Ib_once_1_isIniPERSIST_Lenght()) {
Write_Ib_once_1_isIniPERSIST_Lenght(1);
Ui_Lenght = EEPROM_read(0);
Ui_Lenght |= (uint16_t)EEPROM_read(1) << 8;
} else {
Ii_tmpVar2byte = EEPROM_read(0);
Ii_tmpVar2byte |= (uint16_t)EEPROM_read(1) << 8;
if(Ii_tmpVar2byte != Ui_Lenght) {
Ii_EepromPostponeBytesCounter = 2;
Ii_EepromPostponeBytes = Ui_Lenght;
Write_Ib_once_2_isWrPERSIST_Lenght(1);
}
}
}
}
}
if(Read_Ib_once_2_isWrPERSIST_Lenght()) {
if(Ii_EepromPostponeBytesCounter == 0) {
} else {
Write0_Ib_scratch(); // dummy // 0 = EEPROM is ready
if(!Read_Ib_scratch()) {
Ii_tmpVar2byte = 2 - Ii_EepromPostponeBytesCounter;
EEPROM_write(Ii_tmpVar2byte, Ii_EepromPostponeBytes & 0xFF);
Ii_EepromPostponeBytes = Ii_EepromPostponeBytes >> 8;
Ii_EepromPostponeBytesCounter--;
if(Ii_EepromPostponeBytesCounter == 0) {
Write_Ib_once_2_isWrPERSIST_Lenght(0);
}
}
}
}
// ] finish series
// ======= START RUNG 9 =======
LabelRung9:;
// Lenght in Pulses
// ======= START RUNG 10 =======
LabelRung10:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Manual()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(!Read_Ub_X_up()) {
Write_Ib_rung_top(0);
}
// start parallel [
Write_Ib_parThis_1(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_for_1()) {
Write_Ib_parThis_1(0);
}
// ELEM_LEQ
if(Read_Ib_parThis_1()) {
if(Ui_Lenght > 29998) {
Write_Ib_parThis_1(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_1()) {
if(Read_Ib_once_3_ONE_SHOT_RISING()) {
Write_Ib_parThis_1(0);
} else {
Write_Ib_once_3_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_3_ONE_SHOT_RISING(0);
}
// ELEM_ADD
if(Read_Ib_parThis_1()) {
Ui_Lenght++;
}
// ] finish series
Write_Ib_parThis_1(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_for_10()) {
Write_Ib_parThis_1(0);
}
// ELEM_LEQ
if(Read_Ib_parThis_1()) {
if(Ui_Lenght > 29988) {
Write_Ib_parThis_1(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_1()) {
if(Read_Ib_once_4_ONE_SHOT_RISING()) {
Write_Ib_parThis_1(0);
} else {
Write_Ib_once_4_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_4_ONE_SHOT_RISING(0);
}
// ELEM_ADD
if(Read_Ib_parThis_1()) {
Ui_Lenght += 10;
}
// ] finish series
Write_Ib_parThis_1(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_for_100()) {
Write_Ib_parThis_1(0);
}
// ELEM_LEQ
if(Read_Ib_parThis_1()) {
if(Ui_Lenght > 29898) {
Write_Ib_parThis_1(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_1()) {
if(Read_Ib_once_5_ONE_SHOT_RISING()) {
Write_Ib_parThis_1(0);
} else {
Write_Ib_once_5_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_5_ONE_SHOT_RISING(0);
}
// ELEM_ADD
if(Read_Ib_parThis_1()) {
Ui_Lenght += 100;
}
// ] finish series
Write_Ib_parThis_1(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_for_1000()) {
Write_Ib_parThis_1(0);
}
// ELEM_LEQ
if(Read_Ib_parThis_1()) {
if(Ui_Lenght > 28998) {
Write_Ib_parThis_1(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_1()) {
if(Read_Ib_once_6_ONE_SHOT_RISING()) {
Write_Ib_parThis_1(0);
} else {
Write_Ib_once_6_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_6_ONE_SHOT_RISING(0);
}
// ELEM_ADD
if(Read_Ib_parThis_1()) {
Ui_Lenght += 1000;
}
// ] finish series
// ] finish parallel
// ] finish series
// ======= START RUNG 11 =======
LabelRung11:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Manual()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(!Read_Ub_X_down()) {
Write_Ib_rung_top(0);
}
// start parallel [
Write_Ib_parThis_2(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_for_1()) {
Write_Ib_parThis_2(0);
}
// ELEM_GRT
if(Read_Ib_parThis_2()) {
if(Ui_Lenght <= 0) {
Write_Ib_parThis_2(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_2()) {
if(Read_Ib_once_7_ONE_SHOT_RISING()) {
Write_Ib_parThis_2(0);
} else {
Write_Ib_once_7_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_7_ONE_SHOT_RISING(0);
}
// ELEM_SUB
if(Read_Ib_parThis_2()) {
Ui_Lenght--;
}
// ] finish series
Write_Ib_parThis_2(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_for_10()) {
Write_Ib_parThis_2(0);
}
// ELEM_GEQ
if(Read_Ib_parThis_2()) {
if(Ui_Lenght < 10) {
Write_Ib_parThis_2(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_2()) {
if(Read_Ib_once_8_ONE_SHOT_RISING()) {
Write_Ib_parThis_2(0);
} else {
Write_Ib_once_8_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_8_ONE_SHOT_RISING(0);
}
// ELEM_SUB
if(Read_Ib_parThis_2()) {
Ui_Lenght -= 10;
}
// ] finish series
Write_Ib_parThis_2(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_for_100()) {
Write_Ib_parThis_2(0);
}
// ELEM_GEQ
if(Read_Ib_parThis_2()) {
if(Ui_Lenght < 100) {
Write_Ib_parThis_2(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_2()) {
if(Read_Ib_once_9_ONE_SHOT_RISING()) {
Write_Ib_parThis_2(0);
} else {
Write_Ib_once_9_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_9_ONE_SHOT_RISING(0);
}
// ELEM_SUB
if(Read_Ib_parThis_2()) {
Ui_Lenght -= 100;
}
// ] finish series
Write_Ib_parThis_2(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_for_1000()) {
Write_Ib_parThis_2(0);
}
// ELEM_GEQ
if(Read_Ib_parThis_2()) {
if(Ui_Lenght < 1000) {
Write_Ib_parThis_2(0);
}
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_2()) {
if(Read_Ib_once_a_ONE_SHOT_RISING()) {
Write_Ib_parThis_2(0);
} else {
Write_Ib_once_a_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_a_ONE_SHOT_RISING(0);
}
// ELEM_SUB
if(Read_Ib_parThis_2()) {
Ui_Lenght -= 1000;
}
// ] finish series
// ] finish parallel
// ] finish series
// ======= START RUNG 12 =======
LabelRung12:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_MOVE
if(Read_Ib_rung_top()) {
Ui_Lenght = Ui_Lenght;
}
// ] finish series
// ======= START RUNG 13 =======
LabelRung13:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parOut_0(0);
Write_Ib_parThis_3(Read_Ib_rung_top());
// ELEM_GEQ
if(Read_Ib_parThis_3()) {
if(Ui_Lenght < 30000) {
Write_Ib_parThis_3(0);
}
}
if(Read_Ib_parThis_3()) {
Write_Ib_parOut_0(1);
}
Write_Ib_parThis_3(Read_Ib_rung_top());
// ELEM_LES
if(Read_Ib_parThis_3()) {
if(Ui_Lenght >= 0) {
Write_Ib_parThis_3(0);
}
}
if(Read_Ib_parThis_3()) {
Write_Ib_parOut_0(1);
}
Write_Ib_rung_top(Read_Ib_parOut_0());
// ] finish parallel
// ELEM_MOVE
if(Read_Ib_rung_top()) {
Ui_Lenght = 0;
}
// ] finish series
// ======= START RUNG 14 =======
LabelRung14:;
// Control
// ======= START RUNG 15 =======
LabelRung15:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_XInMode()) {
Write_Ib_rung_top(0);
}
// start parallel [
Write_Ib_parThis_4(Read_Ib_rung_top());
// ELEM_COIL
Write_Ub_R_Hand(Read_Ib_parThis_4());
Write_Ib_parThis_4(Read_Ib_rung_top());
// ELEM_COIL
if(Read_Ib_parThis_4()) {
Write_Ub_R_Auto(0);
} else {
Write_Ub_R_Auto(1);
}
// ] finish parallel
// ] finish series
// ======= START RUNG 16 =======
LabelRung16:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(Read_Ub_XInMode()) {
Write_Ib_rung_top(0);
}
// start parallel [
Write_Ib_parThis_5(Read_Ib_rung_top());
// ELEM_COIL
if(Read_Ib_parThis_5()) {
Write_Ub_R_Hand(0);
} else {
Write_Ub_R_Hand(1);
}
Write_Ib_parThis_5(Read_Ib_rung_top());
// ELEM_COIL
Write_Ub_R_Auto(Read_Ib_parThis_5());
// ] finish parallel
// ] finish series
// ======= START RUNG 17 =======
LabelRung17:;
// Manual control
// ======= START RUNG 18 =======
LabelRung18:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parOut_1(0);
Write_Ib_parThis_6(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Hand()) {
Write_Ib_parThis_6(0);
}
// ELEM_CONTACTS
if(Read_Ub_R_Auto()) {
Write_Ib_parThis_6(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_6()) {
if(Read_Ib_once_b_ONE_SHOT_RISING()) {
Write_Ib_parThis_6(0);
} else {
Write_Ib_once_b_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_b_ONE_SHOT_RISING(0);
}
// ] finish series
if(Read_Ib_parThis_6()) {
Write_Ib_parOut_1(1);
}
Write_Ib_parThis_6(Read_Ib_rung_top());
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_6()) {
if(Read_Ib_once_c_ONE_SHOT_RISING()) {
Write_Ib_parThis_6(0);
} else {
Write_Ib_once_c_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_c_ONE_SHOT_RISING(0);
}
if(Read_Ib_parThis_6()) {
Write_Ib_parOut_1(1);
}
Write_Ib_rung_top(Read_Ib_parOut_1());
// ] finish parallel
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Manual(1);
}
// ] finish series
// ======= START RUNG 19 =======
LabelRung19:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Auto()) {
Write_Ib_rung_top(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_rung_top()) {
if(Read_Ib_once_d_ONE_SHOT_RISING()) {
Write_Ib_rung_top(0);
} else {
Write_Ib_once_d_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_d_ONE_SHOT_RISING(0);
}
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Manual(0);
}
// ] finish series
// ======= START RUNG 20 =======
LabelRung20:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Manual()) {
Write_Ib_rung_top(0);
}
// ELEM_COIL
Write_Ub_Y_LED_Manual(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 21 =======
LabelRung21:;
// Automatic Control
// ======= START RUNG 22 =======
LabelRung22:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(Read_Ub_R_Hand()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_Auto()) {
Write_Ib_rung_top(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_rung_top()) {
if(Read_Ib_once_e_ONE_SHOT_RISING()) {
Write_Ib_rung_top(0);
} else {
Write_Ib_once_e_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_e_ONE_SHOT_RISING(0);
}
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Automatic(1);
}
// ] finish series
// ======= START RUNG 23 =======
LabelRung23:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Hand()) {
Write_Ib_rung_top(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_rung_top()) {
if(Read_Ib_once_f_ONE_SHOT_RISING()) {
Write_Ib_rung_top(0);
} else {
Write_Ib_once_f_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_f_ONE_SHOT_RISING(0);
}
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Automatic(0);
}
// ] finish series
// ======= START RUNG 24 =======
LabelRung24:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Automatic()) {
Write_Ib_rung_top(0);
}
// ELEM_COIL
Write_Ub_Y_LED_Automatic(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 25 =======
LabelRung25:;
// The step rate is determined by the cycle time and speed variab
// fires every cycle, so the step rate is 1/Tcycle. So the step r
// ======= START RUNG 26 =======
LabelRung26:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_ONE_SHOT_RISING
if(Read_Ib_rung_top()) {
if(Read_Ib_once_10_ONE_SHOT_RISING()) {
Write_Ib_rung_top(0);
} else {
Write_Ib_once_10_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_10_ONE_SHOT_RISING(0);
}
// ELEM_MOVE
if(Read_Ib_rung_top()) {
Ui_speed = 8;
}
// ] finish series
// ======= START RUNG 27 =======
LabelRung27:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parThis_7(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_faster()) {
Write_Ib_parThis_7(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_7()) {
if(Read_Ib_once_11_ONE_SHOT_RISING()) {
Write_Ib_parThis_7(0);
} else {
Write_Ib_once_11_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_11_ONE_SHOT_RISING(0);
}
// ELEM_LES
if(Read_Ib_parThis_7()) {
if(Ui_speed >= 20) {
Write_Ib_parThis_7(0);
}
}
// ELEM_ADD
if(Read_Ib_parThis_7()) {
Ui_speed++;
}
// ] finish series
Write_Ib_parThis_7(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_slower()) {
Write_Ib_parThis_7(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_parThis_7()) {
if(Read_Ib_once_12_ONE_SHOT_RISING()) {
Write_Ib_parThis_7(0);
} else {
Write_Ib_once_12_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_12_ONE_SHOT_RISING(0);
}
// ELEM_GRT
if(Read_Ib_parThis_7()) {
if(Ui_speed <= 0) {
Write_Ib_parThis_7(0);
}
}
// ELEM_SUB
if(Read_Ib_parThis_7()) {
Ui_speed--;
}
// ] finish series
// ] finish parallel
// ] finish series
// ======= START RUNG 28 =======
LabelRung28:;
// Update the position of the motor, according to the current spe
// ======= START RUNG 29 =======
LabelRung29:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
// ELEM_ADD
if(Read_Ib_rung_top()) {
Ui_accum += Ui_speed;
}
Write_Ib_parThis_8(Read_Ib_rung_top());
// start series [
// ELEM_GRT
if(Read_Ib_parThis_8()) {
if(Ui_accum <= 20) {
Write_Ib_parThis_8(0);
}
}
// start parallel [
// ELEM_SUB
if(Read_Ib_parThis_8()) {
Ui_accum -= 20;
}
Write_Ib_parThis_9(Read_Ib_parThis_8());
// ELEM_COIL
Write_Ub_R_step(Read_Ib_parThis_9());
// ] finish parallel
// ] finish series
// ] finish parallel
// ] finish series
// ======= START RUNG 30 =======
LabelRung30:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_step()) {
Write_Ib_rung_top(0);
}
// ELEM_ADD
if(Read_Ib_rung_top()) {
Ui_seq++;
}
// ] finish series
// ======= START RUNG 31 =======
LabelRung31:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parThis_a(Read_Ib_rung_top());
// start series [
// ELEM_GRT
if(Read_Ib_parThis_a()) {
if(Ui_seq <= 1) {
Write_Ib_parThis_a(0);
}
}
// ELEM_MOVE
if(Read_Ib_parThis_a()) {
Ui_seq = 0;
}
// ] finish series
Write_Ib_parThis_a(Read_Ib_rung_top());
// start series [
// ELEM_LES
if(Read_Ib_parThis_a()) {
if(Ui_seq >= 0) {
Write_Ib_parThis_a(0);
}
}
// ELEM_MOVE
if(Read_Ib_parThis_a()) {
Ui_seq = 1;
}
// ] finish series
// ] finish parallel
// ] finish series
// ======= START RUNG 32 =======
LabelRung32:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_EQU
if(Read_Ib_rung_top()) {
if(Ui_seq != 0) {
Write_Ib_rung_top(0);
}
}
// ELEM_COIL
Write_Ub_R_takt(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 33 =======
LabelRung33:;
// Start-Stop Automatic
// ======= START RUNG 34 =======
LabelRung34:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_All_OK()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_Automatic()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_Material()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(!Read_Ub_X_Start()) {
Write_Ib_rung_top(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_rung_top()) {
if(Read_Ib_once_13_ONE_SHOT_RISING()) {
Write_Ib_rung_top(0);
} else {
Write_Ib_once_13_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_13_ONE_SHOT_RISING(0);
}
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Aut(1);
}
// ] finish series
// ======= START RUNG 35 =======
LabelRung35:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parOut_2(0);
Write_Ib_parThis_b(Read_Ib_rung_top());
// ELEM_CONTACTS
if(Read_Ub_RX_All_OK()) {
Write_Ib_parThis_b(0);
}
if(Read_Ib_parThis_b()) {
Write_Ib_parOut_2(1);
}
Write_Ib_parThis_b(Read_Ib_rung_top());
// ELEM_CONTACTS
if(!Read_Ub_X_Stop()) {
Write_Ib_parThis_b(0);
}
if(Read_Ib_parThis_b()) {
Write_Ib_parOut_2(1);
}
Write_Ib_parThis_b(Read_Ib_rung_top());
// ELEM_CONTACTS
if(!Read_Ub_R_Manual()) {
Write_Ib_parThis_b(0);
}
if(Read_Ib_parThis_b()) {
Write_Ib_parOut_2(1);
}
Write_Ib_parThis_b(Read_Ib_rung_top());
// ELEM_EQU
if(Read_Ib_parThis_b()) {
if(Ui_Count != 0) {
Write_Ib_parThis_b(0);
}
}
if(Read_Ib_parThis_b()) {
Write_Ib_parOut_2(1);
}
Write_Ib_rung_top(Read_Ib_parOut_2());
// ] finish parallel
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Aut(0);
}
// ] finish series
// ======= START RUNG 36 =======
LabelRung36:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parOut_3(0);
Write_Ib_parThis_c(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_All_OK()) {
Write_Ib_parThis_c(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_LCD()) {
Write_Ib_parThis_c(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_Automatic()) {
Write_Ib_parThis_c(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_Material()) {
Write_Ib_parThis_c(0);
}
// ] finish series
if(Read_Ib_parThis_c()) {
Write_Ib_parOut_3(1);
}
Write_Ib_parThis_c(Read_Ib_rung_top());
// ELEM_CONTACTS
if(!Read_Ub_R_Aut()) {
Write_Ib_parThis_c(0);
}
if(Read_Ib_parThis_c()) {
Write_Ib_parOut_3(1);
}
Write_Ib_rung_top(Read_Ib_parOut_3());
// ] finish parallel
// ELEM_COIL
Write_Ub_Y_LED_AUT(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 37 =======
LabelRung37:;
// Accumulator
// ======= START RUNG 38 =======
LabelRung38:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(Read_Ub_R_Aut()) {
Write_Ib_rung_top(0);
}
// ELEM_MOVE
if(Read_Ib_rung_top()) {
Ui_Count = Ui_Lenght;
}
// ] finish series
// ======= START RUNG 39 =======
LabelRung39:;
// Counting pulses
// ======= START RUNG 40 =======
LabelRung40:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_step()) {
Write_Ib_rung_top(0);
}
// ELEM_ONE_SHOT_RISING
if(Read_Ib_rung_top()) {
if(Read_Ib_once_14_ONE_SHOT_RISING()) {
Write_Ib_rung_top(0);
} else {
Write_Ib_once_14_ONE_SHOT_RISING(1);
}
} else {
Write_Ib_once_14_ONE_SHOT_RISING(0);
}
// ELEM_GEQ
if(Read_Ib_rung_top()) {
if(Ui_Count < 1) {
Write_Ib_rung_top(0);
}
}
// ELEM_SUB
if(Read_Ib_rung_top()) {
Ui_Count--;
}
// ] finish series
// ======= START RUNG 41 =======
LabelRung41:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_MOVE
if(Read_Ib_rung_top()) {
Ui_izbr = Ui_izbr;
}
// ] finish series
// ======= START RUNG 42 =======
LabelRung42:;
// Step Motor Control
// ======= START RUNG 43 =======
LabelRung43:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parThis_d(Read_Ib_rung_top());
// ELEM_COIL
Write_Ub_RX_Forward(Read_Ib_parThis_d());
Write_Ib_parThis_d(Read_Ib_rung_top());
// ELEM_COIL
if(Read_Ib_parThis_d()) {
Write_Ub_RX_Reverse(0);
} else {
Write_Ub_RX_Reverse(1);
}
// ] finish parallel
// ] finish series
// ======= START RUNG 44 =======
LabelRung44:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parOut_4(0);
Write_Ib_parThis_e(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Aut()) {
Write_Ib_parThis_e(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_takt()) {
Write_Ib_parThis_e(0);
}
// ] finish series
if(Read_Ib_parThis_e()) {
Write_Ib_parOut_4(1);
}
Write_Ib_parThis_e(Read_Ib_rung_top());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_Manual()) {
Write_Ib_parThis_e(0);
}
// ELEM_CONTACTS
if(!Read_Ub_R_takt()) {
Write_Ib_parThis_e(0);
}
// start parallel [
Write_Ib_parOut_5(0);
Write_Ib_parThis_f(Read_Ib_parThis_e());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_Forward()) {
Write_Ib_parThis_f(0);
}
// ELEM_CONTACTS
if(Read_Ub_RX_Reverse()) {
Write_Ib_parThis_f(0);
}
// ] finish series
if(Read_Ib_parThis_f()) {
Write_Ib_parOut_5(1);
}
Write_Ib_parThis_f(Read_Ib_parThis_e());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_RX_Reverse()) {
Write_Ib_parThis_f(0);
}
// ELEM_CONTACTS
if(Read_Ub_RX_Forward()) {
Write_Ib_parThis_f(0);
}
// ] finish series
if(Read_Ib_parThis_f()) {
Write_Ib_parOut_5(1);
}
Write_Ib_parThis_e(Read_Ib_parOut_5());
// ] finish parallel
// ] finish series
if(Read_Ib_parThis_e()) {
Write_Ib_parOut_4(1);
}
Write_Ib_rung_top(Read_Ib_parOut_4());
// ] finish parallel
// start parallel [
Write_Ib_parOut_6(0);
Write_Ib_parThis_10(Read_Ib_rung_top());
// ELEM_CONTACTS
if(!Read_Ub_RX_All_OK()) {
Write_Ib_parThis_10(0);
}
if(Read_Ib_parThis_10()) {
Write_Ib_parOut_6(1);
}
Write_Ib_parThis_10(Read_Ib_rung_top());
// ELEM_CONTACTS
if(!Read_Ub_RAlwaysOn()) {
Write_Ib_parThis_10(0);
}
if(Read_Ib_parThis_10()) {
Write_Ib_parOut_6(1);
}
Write_Ib_rung_top(Read_Ib_parOut_6());
// ] finish parallel
// ELEM_COIL
Write_Ub_Y_Steps_for_Motor(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 45 =======
LabelRung45:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// start parallel [
Write_Ib_parOut_7(0);
Write_Ib_parThis_11(Read_Ib_rung_top());
// ELEM_CONTACTS
if(!Read_Ub_RX_All_OK()) {
Write_Ib_parThis_11(0);
}
if(Read_Ib_parThis_11()) {
Write_Ib_parOut_7(1);
}
Write_Ib_parThis_11(Read_Ib_rung_top());
// ELEM_CONTACTS
if(!Read_Ub_RAlwaysOn()) {
Write_Ib_parThis_11(0);
}
if(Read_Ib_parThis_11()) {
Write_Ib_parOut_7(1);
}
Write_Ib_rung_top(Read_Ib_parOut_7());
// ] finish parallel
// ELEM_CONTACTS
if(!Read_Ub_R_Manual()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(!Read_Ub_RX_Reverse()) {
Write_Ib_rung_top(0);
}
// ELEM_CONTACTS
if(Read_Ub_RX_Forward()) {
Write_Ib_rung_top(0);
}
// ELEM_COIL
Write_Ub_Y_Direction(Read_Ib_rung_top());
// ] finish series
// ======= START RUNG 46 =======
LabelRung46:;
// Material Control: when there is material in front of foto cell
// ======= START RUNG 47 =======
LabelRung47:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_Foto_Cell()) {
Write_Ib_rung_top(0);
}
// ELEM_RTO
if(Ui_T_On_foto < 4999) {
if(Read_Ib_rung_top()) {
Ui_T_On_foto++;
Write_Ib_rung_top(0);
}
} else {
Write_Ib_rung_top(1);
}
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Material(1);
}
// ] finish series
// ======= START RUNG 48 =======
LabelRung48:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(Read_Ub_X_Foto_Cell()) {
Write_Ib_rung_top(0);
}
// ELEM_RTO
if(Ui_T_Off_foto_cell < 4999) {
if(Read_Ib_rung_top()) {
Ui_T_Off_foto_cell++;
Write_Ib_rung_top(0);
}
} else {
Write_Ib_rung_top(1);
}
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_Material(0);
}
// ] finish series
// ======= START RUNG 49 =======
LabelRung49:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_X_Foto_Cell()) {
Write_Ib_rung_top(0);
}
// ELEM_RES
if(Read_Ib_rung_top()) {
Ui_T_Off_foto_cell = 0;
}
// ] finish series
// ======= START RUNG 50 =======
LabelRung50:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(Read_Ub_X_Foto_Cell()) {
Write_Ib_rung_top(0);
}
// ELEM_RES
if(Read_Ib_rung_top()) {
Ui_T_On_foto = 0;
}
// ] finish series
// ======= START RUNG 51 =======
LabelRung51:;
// LCD
// ======= START RUNG 52 =======
LabelRung52:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_LCD()) {
Write_Ib_rung_top(0);
}
// ELEM_TON T_lcd_on 50000
if(Read_Ib_rung_top()) {
if(Ui_T_lcd_on < 249) {
Write_Ib_rung_top(0);
Ui_T_lcd_on++;
}
} else {
Ui_T_lcd_on = 0;
}
// ELEM_TOF
if(!Read_Ib_rung_top()) {
if(Ui_T_lcd_off < 249) {
Ui_T_lcd_off++;
Write_Ib_rung_top(1);
}
} else {
Ui_T_lcd_off = 0;
}
// ELEM_COIL
if(Read_Ib_rung_top()) {
Write_Ub_R_LCD(0);
} else {
Write_Ub_R_LCD(1);
}
// ] finish series
// ======= START RUNG 53 =======
LabelRung53:;
Write_Ib_rung_top(Read_Ib_mcr());
// start series [
// ELEM_CONTACTS
if(!Read_Ub_R_LCD()) {
Write_Ib_rung_top(0);
}
// ELEM_ONE_SHOT_FALLING
if(!Read_Ib_rung_top()) {
if(Read_Ib_once_15_ONE_SHOT_FALLING()) {
Write_Ib_once_15_ONE_SHOT_FALLING(0);
Write_Ib_rung_top(1);
}
} else {
Write_Ib_once_15_ONE_SHOT_FALLING(1);
Write_Ib_rung_top(0);
}
// ELEM_FORMATTED_STRING
if(Read_Ib_rung_top()) {
if(!Read_Ib_once_16_FMTD_STR()) {
Write_Ib_once_16_FMTD_STR(1);
Ii_fmtd_0_seq = 0;
Write_Ib_fmtd_3_doSend(1);
}
} else {
Write_Ib_once_16_FMTD_STR(0);
}
Ii_seqScratch = Ii_fmtd_0_seq;
if(Ii_fmtd_0_seq < 18) {
} else {
Ii_seqScratch = -1;
}
if(Read_Ib_fmtd_3_doSend()) {
Write_Ib_scratch(0);
Ib_scratch = UART_Transmit_Ready();
if(!Read_Ib_scratch()) {
Ii_seqScratch = -1;
}
}
Ii_scratch = 0;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 76;
}
Ii_scratch = 1;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 101;
}
Ii_scratch = 2;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 110;
}
Ii_scratch = 3;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 103;
}
Ii_scratch = 4;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 104;
}
Ii_scratch = 5;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 116;
}
Ii_scratch = 6;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 58;
}
Ii_scratch = 7;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 8;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 9;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 10;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 11;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_fmtd_1_convertState = Ui_Lenght;
Write_Ib_fmtd_2_isLeadingZero(1);
Ii_scratch = 10000;
Ii_charToUart = Ii_fmtd_1_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_1_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_2_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_2_isLeadingZero(0);
}
}
Ii_scratch = 12;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 1000;
Ii_charToUart = Ii_fmtd_1_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_1_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_2_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_2_isLeadingZero(0);
}
}
Ii_scratch = 13;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 100;
Ii_charToUart = Ii_fmtd_1_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_1_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_2_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_2_isLeadingZero(0);
}
}
Ii_scratch = 14;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 10;
Ii_charToUart = Ii_fmtd_1_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_1_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_2_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_2_isLeadingZero(0);
}
}
Ii_scratch = 15;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 1;
Ii_charToUart = Ii_fmtd_1_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_1_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
}
Ii_scratch = 16;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 254;
}
Ii_scratch = 17;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 2;
}
if(Ii_seqScratch < 0) {
} else {
if(Read_Ib_fmtd_3_doSend()) {
UART_Transmit(Ii_charToUart);
Ii_fmtd_0_seq++;
}
}
Write_Ib_rung_top(0);
if(Ii_fmtd_0_seq < 18) {
if(Read_Ib_fmtd_3_doSend()) {
Write_Ib_rung_top(1);
}
} else {
Write_Ib_fmtd_3_doSend(0);
}
// ELEM_ONE_SHOT_FALLING
if(!Read_Ib_rung_top()) {
if(Read_Ib_once_17_ONE_SHOT_FALLING()) {
Write_Ib_once_17_ONE_SHOT_FALLING(0);
Write_Ib_rung_top(1);
}
} else {
Write_Ib_once_17_ONE_SHOT_FALLING(1);
Write_Ib_rung_top(0);
}
// ELEM_FORMATTED_STRING
if(Read_Ib_rung_top()) {
if(!Read_Ib_once_18_FMTD_STR()) {
Write_Ib_once_18_FMTD_STR(1);
Ii_fmtd_4_seq = 0;
Write_Ib_fmtd_7_doSend(1);
}
} else {
Write_Ib_once_18_FMTD_STR(0);
}
Ii_seqScratch = Ii_fmtd_4_seq;
if(Ii_fmtd_4_seq < 23) {
} else {
Ii_seqScratch = -1;
}
if(Read_Ib_fmtd_7_doSend()) {
Write_Ib_scratch(0);
Ib_scratch = UART_Transmit_Ready();
if(!Read_Ib_scratch()) {
Ii_seqScratch = -1;
}
}
Ii_scratch = 0;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 1;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 2;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 3;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 83;
}
Ii_scratch = 4;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 116;
}
Ii_scratch = 5;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 101;
}
Ii_scratch = 6;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 112;
}
Ii_scratch = 7;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 8;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 77;
}
Ii_scratch = 9;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 111;
}
Ii_scratch = 10;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 116;
}
Ii_scratch = 11;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 111;
}
Ii_scratch = 12;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 114;
}
Ii_scratch = 13;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 14;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 15;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 32;
}
Ii_scratch = 16;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_fmtd_5_convertState = Ui_speed;
Write_Ib_fmtd_6_isLeadingZero(1);
Ii_scratch = 10000;
Ii_charToUart = Ii_fmtd_5_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_5_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_6_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_6_isLeadingZero(0);
}
}
Ii_scratch = 17;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 1000;
Ii_charToUart = Ii_fmtd_5_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_5_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_6_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_6_isLeadingZero(0);
}
}
Ii_scratch = 18;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 100;
Ii_charToUart = Ii_fmtd_5_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_5_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_6_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_6_isLeadingZero(0);
}
}
Ii_scratch = 19;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 10;
Ii_charToUart = Ii_fmtd_5_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_5_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
if(Ii_scratch == Ii_charToUart) {
if(Read_Ib_fmtd_6_isLeadingZero()) {
Ii_charToUart = 32;
}
} else {
Write_Ib_fmtd_6_isLeadingZero(0);
}
}
Ii_scratch = 20;
Write_Ib_scratch(0);
if(Ii_scratch == Ii_seqScratch) {
Write_Ib_scratch(1);
}
if(Read_Ib_scratch()) {
Ii_scratch = 1;
Ii_charToUart = Ii_fmtd_5_convertState / Ii_scratch;
Ii_scratch *= Ii_charToUart;
Ii_fmtd_5_convertState -= Ii_scratch;
Ii_scratch = 48;
Ii_charToUart += Ii_scratch;
}
Ii_scratch = 21;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 254;
}
Ii_scratch = 22;
if(Ii_scratch == Ii_seqScratch) {
Ii_charToUart = 192;
}
if(Ii_seqScratch < 0) {
} else {
if(Read_Ib_fmtd_7_doSend()) {
UART_Transmit(Ii_charToUart);
Ii_fmtd_4_seq++;
}
}
Write_Ib_rung_top(0);
if(Ii_fmtd_4_seq < 23) {
if(Read_Ib_fmtd_7_doSend()) {
Write_Ib_rung_top(1);
}
} else {
Write_Ib_fmtd_7_doSend(0);
}
// ] finish series
LabelRung54:;
// Latest INT_OP here
}
// PLC Cycle timing function.
boolean IsPlcInterval() {
static unsigned long last_run;
unsigned long micros_now = micros();
if (micros_now - last_run >= PLC_INTERVAL) {
last_run = micros_now;
return true;
}
return false;
}
// Call loopPlc() function in loop() of your arduino project once.
void loopPlc() {
if (IsPlcInterval()) {
#ifdef USE_WDT
wdt_reset();
#endif
PlcCycle();
}
}
// Call setupPlc() function in setup() function of your arduino project once.
void setupPlc(void) {
#ifdef USE_WDT
wdt_enable(WDTO_2S);
#endif
// Initialize PLC cycle timer here if you need.
// ...
//Set up UART
Serial.begin(9600);
while(!Serial) {
; // We expect to connect the serial port. It is only necessary for the Leonardo.
}
// Set up analog reference type
analogReference(analogReference_type);
// Set up I/O pins
pinMode(pin_Ub_XInMode, INPUT_PULLUP);
pinMode(pin_Ub_X_Foto_Cell, INPUT_PULLUP);
pinMode(pin_Ub_X_Start, INPUT_PULLUP);
pinMode(pin_Ub_X_Stop, INPUT_PULLUP);
pinMode(pin_Ub_X_down, INPUT_PULLUP);
pinMode(pin_Ub_X_faster, INPUT_PULLUP);
pinMode(pin_Ub_X_for_100, INPUT_PULLUP);
pinMode(pin_Ub_X_for_1000, INPUT_PULLUP);
pinMode(pin_Ub_X_slower, INPUT_PULLUP);
pinMode(pin_Ub_X_up, INPUT_PULLUP);
pinMode(pin_Ub_Y_Direction, OUTPUT);
pinMode(pin_Ub_Y_LED_AUT, OUTPUT);
pinMode(pin_Ub_Y_LED_Automatic, OUTPUT);
pinMode(pin_Ub_Y_LED_Manual, OUTPUT);
pinMode(pin_Ub_Y_Steps_for_Motor, OUTPUT);
}
Here is the ladder.h file code that is referenced in the .cpp code above:
/* This is example for ladder.h file!
This is auto-generated C header from LDmicro.
Rename this file as ladder.h or copy content(or part) of this file
to existing ladder.h. Remove this comment from ladder.h. */
#ifndef __LADDER_H__
#define __LADDER_H__
#define LDTARGET_atmega2560
#ifndef F_CPU
#define F_CPU 20000000UL
#endif
#define _XTAL_FREQ 20000000UL
/* Uncomment EXTERN_EVERYTHING if you want all symbols in DriverStepMotorMerge.c extern. */
//#define EXTERN_EVERYTHING
#ifdef EXTERN_EVERYTHING
#define _STATIC_
#else
#define _STATIC_ static
#endif
/* Uncomment NO_PROTOTYPES if you want own prototypes for functions. */
//#define NO_PROTOTYPES
/* Define NO_PROTOTYPES in ladder.h if you don't want LDmicro to provide prototypes for
all the I/O functions (Read_Ux_xxx, Write_Ux_xxx) that you must provide.
If you define this then you must provide your own prototypes for these
functions in DriverStepMotorMerge.h, or provide definitions (e.g. as inlines or macros)
for them in DriverStepMotorMerge.h. */
#ifdef NO_PROTOTYPES
#define PROTO(x)
#else
#define PROTO(x) x
#endif
/* Uncomment DO_LDSTUBS if you want to use the empty stub-functions
from DriverStepMotorMerge.c instead the prototypes for functions.
Use DO_LDSTUBS to just check the compilation of the generated files. */
//#define DO_LDSTUBS
#ifdef DO_LDSTUBS
#define LDSTUB(x) x { ; }
#define LDSTUB0(x) x { return 0; }
#define LDSTUB1(x) x { return 1; }
#else
#define LDSTUB(x) PROTO(extern x;)
#define LDSTUB0(x) PROTO(extern x;)
#define LDSTUB1(x) PROTO(extern x;)
#endif
/* Uncomment USE_WDT when you need to. */
//#define USE_WDT
/* Comment out USE_MACRO in next line, if you want to use functions instead of macros. */
#define USE_MACRO
#include "Arduino.h"
#ifdef __GNUC__
//mem.h vvv
//CodeVisionAVR V2.0 C Compiler
//(C) 1998-2007 Pavel Haiduc, HP InfoTech S.R.L.
//
// Memory access macros
#ifndef _MEM_INCLUDED_
#define _MEM_INCLUDED_
#define pokeb(addr,data) (*((volatile unsigned char *)(addr)) = (data))
#define pokew(addr,data) (*((volatile unsigned int *)(addr)) = (data))
#define peekb(addr) (*((volatile unsigned char *)(addr)))
#define peekw(addr) (*((volatile unsigned int *)(addr)))
#endif
//mem.h ^^^
#endif
#define SFR_ADDR(addr) (*((volatile unsigned char *)(addr)))
//#define BYTE_AT(var, index) (*(((unsigned char *)(&var)) + (index)))
#define BYTE_AT(var, index) (((unsigned char *)(&var))[index])
/*
Type Size(bits)
BOOLEAN_t unsigned 1 or 8, the smallest possible
SBYTE signed integer 8
SWORD signed integer 16
SDWORD signed integer 32
*/
typedef boolean BOOLEAN_t;
typedef char SBYTE;
typedef int SWORD;
typedef long int SDWORD;
#include "UsrLib.h"
#include "UartLib.h"
#include "RomLib.h"
// You provide analog reference type for ARDUINO in ladder.h here.
const int analogReference_type = DEFAULT;
#endif
Where does one find UsrLib.h. UartLib.h and RomLib.h?
And "DriverStepperMotorMerge.h"?
UsrLib.h:
#include <avr/io.h>
#include <avr/wdt.h>
// standard functions to implement in C
#define F_QUO ((25 * F_CPU) / 100000) // 1 MHz -> 250
// At 1MHz, 1 cycle instruction = 1�s
extern unsigned char u__delay1;
extern unsigned char u__delay2;
extern unsigned u__delay;
// user functions
#if 0
void delay_us1(unsigned char ud); // 0 < ud < 50 higher values may not work properly !
void delay_us2(unsigned ud); // 50 < ud < 1000 higher values may not work properly !
#endif
void delay_ms(unsigned md); // 0 < md < 20000 higher values may not work properly !
// internal functions
void us_delay1();
void us_delay2();
// u__delay= (ud * (F_CPU / 100000) / 40) + 1
// 25 * F_CPU * shift division by 1024 ~= 25 * F_CPU * division by 1000 but much faster
// for very short delays (0 < ud < 50)
// ud is an unsigned char
#define delay_us1(ud) \
{ \
u__delay1= ((ud * F_QUO) >> 10) + 1; \
us_delay1(); \
}
// u__delay= (ud * (F_CPU / 100000) / 40) + 1
// 25 * F_CPU * shift division by 1024 ~= 25 * F_CPU * division by 1000 but much faster
// for short delays (50 < ud < 1000)
// ud is an unsigned
#define delay_us2(ud) \
{ \
u__delay= (ud * F_QUO) >> 10; \
u__delay2= u__delay >> 5; \
u__delay1= (u__delay & 0x001F) + 1; \
us_delay2(); \
us_delay1(); \
}
#define delay_cycles(ticks) __builtin_avr_delay_cycles(ticks)
// for AtMega328
#ifndef EEWE
#define EEWE EEPE
#endif
#ifndef EEMWE
#define EEMWE EEMPE
#endif
/*
unsigned char EEPROM_Read(int address);
void EEPROM_Write(int address, unsigned char byte);
*/
uint16_t swap(uint16_t var);
int16_t opposite(int16_t var);
uint8_t bcd2bin(uint8_t var);
uint8_t bin2bcd(uint8_t var);
#ifndef TIFR1
#define TIFR1 TIFR
#endif
#define WDT_restart() wdt_reset()
Uartlib.h:
#ifndef __UARTLIB_H__
#define __UARTLIB_H__
// clang-format off
#ifndef UCSRA
#define UCSRA UCSR0A
#endif
#ifndef UDRE
#define UDRE UDRE0
#endif
#ifndef UDR
#define UDR UDR0
#endif
#ifndef RXC
#define RXC RXC0
#endif
#ifndef UBRRH
#define UBRRH UBRR0H
#endif
#ifndef UBRRL
#define UBRRL UBRR0L
#endif
#ifndef UCSRB
#define UCSRB UCSR0B
#endif
#ifndef RXEN
#define RXEN RXEN0
#endif
#ifndef TXEN
#define TXEN TXEN0
#endif
// clang-format on
void UART_Init(unsigned int divisor);
void UART_Transmit(unsigned char data);
unsigned char UART_Receive(void);
unsigned char UART_Transmit_Ready(void);
unsigned char UART_Transmit_Busy(void);
unsigned char UART_Receive_Avail(void);
void UART_Write(char *string);
#endif
Romlib.h:
#include <stdint.h>
#include <avr/io.h>
#include <avr/common.h>
#include <avr/interrupt.h>
#ifndef EEARL
#ifdef EEAR
#define EEARL EEAR
#else
#error Check the name of the EEPROM address register!!!
#endif
#endif
#if !defined(EEWE)
#if defined(EEPE)
#define EEWE EEPE
#else
#error Check the name of the EEWE/EEPE bit!!!
#endif
#endif
#if !defined(EEMWE)
#if defined(EEMPE)
#define EEMWE EEMPE
#else
#error Check the name of the EEMWE/EEMPE bit!!!
#endif
#endif
unsigned char EEPROM_read(uint16_t address);
void EEPROM_write(uint16_t address, unsigned char data);
unsigned char EEPROM_busy();
DriverStepMotorMerge.h:
/* This is auto-generated C header from LDmicro. Do not edit this file!
Go back to the LDmicro ladder diagram source for changes in the ladder logic,
and make any C additions in additional .c or .h files linked against this one. */
#ifndef __DriverStepMotorMerge_H__
#define __DriverStepMotorMerge_H__
#include "ladder.h"
// PLC cycle interval, set this according to LDmicro settings. (micro seconds)
#define PLC_INTERVAL 200 // us
#ifdef USE_WDT
#include <avr\wdt.h>
#endif
extern void loopPlc(void); // Call loopPlc() function in loop() of your arduino project
extern void setupPlc(void); // or initialize PLC cycle timer in this function
extern void PlcCycle(void); // and call PlcCycle() function once per PLC cycle timer.
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_0_INIT_VARS;
#endif
#define Read_Ib_once_0_INIT_VARS() Ib_once_0_INIT_VARS
#define Write_Ib_once_0_INIT_VARS(x) (Ib_once_0_INIT_VARS = x)
#define Write0_Ib_once_0_INIT_VARS() (Ib_once_0_INIT_VARS = 0)
#define Write1_Ib_once_0_INIT_VARS() (Ib_once_0_INIT_VARS = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_T_lcd_off;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_mcr;
#endif
#define Read_Ib_mcr() Ib_mcr
#define Write_Ib_mcr(x) (Ib_mcr = x)
#define Write0_Ib_mcr() (Ib_mcr = 0)
#define Write1_Ib_mcr() (Ib_mcr = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_rung_top;
#endif
#define Read_Ib_rung_top() Ib_rung_top
#define Write_Ib_rung_top(x) (Ib_rung_top = x)
#define Write0_Ib_rung_top() (Ib_rung_top = 0)
#define Write1_Ib_rung_top() (Ib_rung_top = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_RAlwaysOn;
#endif
#define Read_Ub_RAlwaysOn() Ub_RAlwaysOn
#define Write_Ub_RAlwaysOn(x) (Ub_RAlwaysOn = x)
#define Write0_Ub_RAlwaysOn() (Ub_RAlwaysOn = 0)
#define Write1_Ub_RAlwaysOn() (Ub_RAlwaysOn = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_0;
#endif
#define Read_Ib_parThis_0() Ib_parThis_0
#define Write_Ib_parThis_0(x) (Ib_parThis_0 = x)
#define Write0_Ib_parThis_0() (Ib_parThis_0 = 0)
#define Write1_Ib_parThis_0() (Ib_parThis_0 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_RX_All_OK;
#endif
#define Read_Ub_RX_All_OK() Ub_RX_All_OK
#define Write_Ub_RX_All_OK(x) (Ub_RX_All_OK = x)
#define Write0_Ub_RX_All_OK() (Ub_RX_All_OK = 0)
#define Write1_Ub_RX_All_OK() (Ub_RX_All_OK = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_RX_for_1;
#endif
#define Read_Ub_RX_for_1() Ub_RX_for_1
#define Write_Ub_RX_for_1(x) (Ub_RX_for_1 = x)
#define Write0_Ub_RX_for_1() (Ub_RX_for_1 = 0)
#define Write1_Ub_RX_for_1() (Ub_RX_for_1 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_RX_for_10;
#endif
#define Read_Ub_RX_for_10() Ub_RX_for_10
#define Write_Ub_RX_for_10(x) (Ub_RX_for_10 = x)
#define Write0_Ub_RX_for_10() (Ub_RX_for_10 = 0)
#define Write1_Ub_RX_for_10() (Ub_RX_for_10 = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_T_Protect;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_Prot;
#endif
#define Read_Ub_R_Prot() Ub_R_Prot
#define Write_Ub_R_Prot(x) (Ub_R_Prot = x)
#define Write0_Ub_R_Prot() (Ub_R_Prot = 0)
#define Write1_Ub_R_Prot() (Ub_R_Prot = 1)
const int pin_Ub_X_up = 32; // PC5 A13
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_up() digitalRead(pin_Ub_X_up)
#else
PROTO(BOOLEAN_t Read_Ub_X_up(void));
#endif
#endif
const int pin_Ub_X_down = 33; // PC4 A12
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_down() digitalRead(pin_Ub_X_down)
#else
PROTO(BOOLEAN_t Read_Ub_X_down(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern SBYTE Ii_EepromPostponeBytesCounter;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_scratch;
#endif
#define Read_Ib_scratch() Ib_scratch
#define Write_Ib_scratch(x) (Ib_scratch = x)
#define Write0_Ib_scratch() (Ib_scratch = 0)
#define Write1_Ib_scratch() (Ib_scratch = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_1_isIniPERSIST_Lenght;
#endif
#define Read_Ib_once_1_isIniPERSIST_Lenght() Ib_once_1_isIniPERSIST_Lenght
#define Write_Ib_once_1_isIniPERSIST_Lenght(x) (Ib_once_1_isIniPERSIST_Lenght = x)
#define Write0_Ib_once_1_isIniPERSIST_Lenght() (Ib_once_1_isIniPERSIST_Lenght = 0)
#define Write1_Ib_once_1_isIniPERSIST_Lenght() (Ib_once_1_isIniPERSIST_Lenght = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_Lenght;
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_tmpVar2byte;
#endif
#ifdef EXTERN_EVERYTHING
extern SDWORD Ii_EepromPostponeBytes;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_2_isWrPERSIST_Lenght;
#endif
#define Read_Ib_once_2_isWrPERSIST_Lenght() Ib_once_2_isWrPERSIST_Lenght
#define Write_Ib_once_2_isWrPERSIST_Lenght(x) (Ib_once_2_isWrPERSIST_Lenght = x)
#define Write0_Ib_once_2_isWrPERSIST_Lenght() (Ib_once_2_isWrPERSIST_Lenght = 0)
#define Write1_Ib_once_2_isWrPERSIST_Lenght() (Ib_once_2_isWrPERSIST_Lenght = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_Manual;
#endif
#define Read_Ub_R_Manual() Ub_R_Manual
#define Write_Ub_R_Manual(x) (Ub_R_Manual = x)
#define Write0_Ub_R_Manual() (Ub_R_Manual = 0)
#define Write1_Ub_R_Manual() (Ub_R_Manual = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_1;
#endif
#define Read_Ib_parThis_1() Ib_parThis_1
#define Write_Ib_parThis_1(x) (Ib_parThis_1 = x)
#define Write0_Ib_parThis_1() (Ib_parThis_1 = 0)
#define Write1_Ib_parThis_1() (Ib_parThis_1 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_3_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_3_ONE_SHOT_RISING() Ib_once_3_ONE_SHOT_RISING
#define Write_Ib_once_3_ONE_SHOT_RISING(x) (Ib_once_3_ONE_SHOT_RISING = x)
#define Write0_Ib_once_3_ONE_SHOT_RISING() (Ib_once_3_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_3_ONE_SHOT_RISING() (Ib_once_3_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_4_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_4_ONE_SHOT_RISING() Ib_once_4_ONE_SHOT_RISING
#define Write_Ib_once_4_ONE_SHOT_RISING(x) (Ib_once_4_ONE_SHOT_RISING = x)
#define Write0_Ib_once_4_ONE_SHOT_RISING() (Ib_once_4_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_4_ONE_SHOT_RISING() (Ib_once_4_ONE_SHOT_RISING = 1)
const int pin_Ub_X_for_100 = 34; // PC3 A11
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_for_100() digitalRead(pin_Ub_X_for_100)
#else
PROTO(BOOLEAN_t Read_Ub_X_for_100(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_5_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_5_ONE_SHOT_RISING() Ib_once_5_ONE_SHOT_RISING
#define Write_Ib_once_5_ONE_SHOT_RISING(x) (Ib_once_5_ONE_SHOT_RISING = x)
#define Write0_Ib_once_5_ONE_SHOT_RISING() (Ib_once_5_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_5_ONE_SHOT_RISING() (Ib_once_5_ONE_SHOT_RISING = 1)
const int pin_Ub_X_for_1000 = 35; // PC2 A10
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_for_1000() digitalRead(pin_Ub_X_for_1000)
#else
PROTO(BOOLEAN_t Read_Ub_X_for_1000(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_6_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_6_ONE_SHOT_RISING() Ib_once_6_ONE_SHOT_RISING
#define Write_Ib_once_6_ONE_SHOT_RISING(x) (Ib_once_6_ONE_SHOT_RISING = x)
#define Write0_Ib_once_6_ONE_SHOT_RISING() (Ib_once_6_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_6_ONE_SHOT_RISING() (Ib_once_6_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_2;
#endif
#define Read_Ib_parThis_2() Ib_parThis_2
#define Write_Ib_parThis_2(x) (Ib_parThis_2 = x)
#define Write0_Ib_parThis_2() (Ib_parThis_2 = 0)
#define Write1_Ib_parThis_2() (Ib_parThis_2 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_7_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_7_ONE_SHOT_RISING() Ib_once_7_ONE_SHOT_RISING
#define Write_Ib_once_7_ONE_SHOT_RISING(x) (Ib_once_7_ONE_SHOT_RISING = x)
#define Write0_Ib_once_7_ONE_SHOT_RISING() (Ib_once_7_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_7_ONE_SHOT_RISING() (Ib_once_7_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_8_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_8_ONE_SHOT_RISING() Ib_once_8_ONE_SHOT_RISING
#define Write_Ib_once_8_ONE_SHOT_RISING(x) (Ib_once_8_ONE_SHOT_RISING = x)
#define Write0_Ib_once_8_ONE_SHOT_RISING() (Ib_once_8_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_8_ONE_SHOT_RISING() (Ib_once_8_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_9_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_9_ONE_SHOT_RISING() Ib_once_9_ONE_SHOT_RISING
#define Write_Ib_once_9_ONE_SHOT_RISING(x) (Ib_once_9_ONE_SHOT_RISING = x)
#define Write0_Ib_once_9_ONE_SHOT_RISING() (Ib_once_9_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_9_ONE_SHOT_RISING() (Ib_once_9_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_a_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_a_ONE_SHOT_RISING() Ib_once_a_ONE_SHOT_RISING
#define Write_Ib_once_a_ONE_SHOT_RISING(x) (Ib_once_a_ONE_SHOT_RISING = x)
#define Write0_Ib_once_a_ONE_SHOT_RISING() (Ib_once_a_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_a_ONE_SHOT_RISING() (Ib_once_a_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_0;
#endif
#define Read_Ib_parOut_0() Ib_parOut_0
#define Write_Ib_parOut_0(x) (Ib_parOut_0 = x)
#define Write0_Ib_parOut_0() (Ib_parOut_0 = 0)
#define Write1_Ib_parOut_0() (Ib_parOut_0 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_3;
#endif
#define Read_Ib_parThis_3() Ib_parThis_3
#define Write_Ib_parThis_3(x) (Ib_parThis_3 = x)
#define Write0_Ib_parThis_3() (Ib_parThis_3 = 0)
#define Write1_Ib_parThis_3() (Ib_parThis_3 = 1)
const int pin_Ub_XInMode = 43; // PL6
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_XInMode() digitalRead(pin_Ub_XInMode)
#else
PROTO(BOOLEAN_t Read_Ub_XInMode(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_4;
#endif
#define Read_Ib_parThis_4() Ib_parThis_4
#define Write_Ib_parThis_4(x) (Ib_parThis_4 = x)
#define Write0_Ib_parThis_4() (Ib_parThis_4 = 0)
#define Write1_Ib_parThis_4() (Ib_parThis_4 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_Hand;
#endif
#define Read_Ub_R_Hand() Ub_R_Hand
#define Write_Ub_R_Hand(x) (Ub_R_Hand = x)
#define Write0_Ub_R_Hand() (Ub_R_Hand = 0)
#define Write1_Ub_R_Hand() (Ub_R_Hand = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_Auto;
#endif
#define Read_Ub_R_Auto() Ub_R_Auto
#define Write_Ub_R_Auto(x) (Ub_R_Auto = x)
#define Write0_Ub_R_Auto() (Ub_R_Auto = 0)
#define Write1_Ub_R_Auto() (Ub_R_Auto = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_5;
#endif
#define Read_Ib_parThis_5() Ib_parThis_5
#define Write_Ib_parThis_5(x) (Ib_parThis_5 = x)
#define Write0_Ib_parThis_5() (Ib_parThis_5 = 0)
#define Write1_Ib_parThis_5() (Ib_parThis_5 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_1;
#endif
#define Read_Ib_parOut_1() Ib_parOut_1
#define Write_Ib_parOut_1(x) (Ib_parOut_1 = x)
#define Write0_Ib_parOut_1() (Ib_parOut_1 = 0)
#define Write1_Ib_parOut_1() (Ib_parOut_1 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_6;
#endif
#define Read_Ib_parThis_6() Ib_parThis_6
#define Write_Ib_parThis_6(x) (Ib_parThis_6 = x)
#define Write0_Ib_parThis_6() (Ib_parThis_6 = 0)
#define Write1_Ib_parThis_6() (Ib_parThis_6 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_b_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_b_ONE_SHOT_RISING() Ib_once_b_ONE_SHOT_RISING
#define Write_Ib_once_b_ONE_SHOT_RISING(x) (Ib_once_b_ONE_SHOT_RISING = x)
#define Write0_Ib_once_b_ONE_SHOT_RISING() (Ib_once_b_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_b_ONE_SHOT_RISING() (Ib_once_b_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_c_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_c_ONE_SHOT_RISING() Ib_once_c_ONE_SHOT_RISING
#define Write_Ib_once_c_ONE_SHOT_RISING(x) (Ib_once_c_ONE_SHOT_RISING = x)
#define Write0_Ib_once_c_ONE_SHOT_RISING() (Ib_once_c_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_c_ONE_SHOT_RISING() (Ib_once_c_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_d_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_d_ONE_SHOT_RISING() Ib_once_d_ONE_SHOT_RISING
#define Write_Ib_once_d_ONE_SHOT_RISING(x) (Ib_once_d_ONE_SHOT_RISING = x)
#define Write0_Ib_once_d_ONE_SHOT_RISING() (Ib_once_d_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_d_ONE_SHOT_RISING() (Ib_once_d_ONE_SHOT_RISING = 1)
const int pin_Ub_Y_LED_Manual = 9; //PWM~; // PH6 OC2B
#ifndef NO_PROTOTYPES
// LDmicro provide these macros or functions.
#ifdef USE_MACRO
#define Read_Ub_Y_LED_Manual() digitalRead(pin_Ub_Y_LED_Manual)
#define Write0_Ub_Y_LED_Manual() digitalWrite(pin_Ub_Y_LED_Manual, LOW)
#define Write1_Ub_Y_LED_Manual() digitalWrite(pin_Ub_Y_LED_Manual, HIGH)
#define Write_Ub_Y_LED_Manual(b) (b) ? Write1_Ub_Y_LED_Manual() : Write0_Ub_Y_LED_Manual()
#else
PROTO(BOOLEAN_t Read_Ub_Y_LED_Manual(void));
PROTO(void Write_Ub_Y_LED_Manual(BOOLEAN_t b));
PROTO(void Write1_Ub_Y_LED_Manual(void));
PROTO(void Write0_Ub_Y_LED_Manual(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_e_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_e_ONE_SHOT_RISING() Ib_once_e_ONE_SHOT_RISING
#define Write_Ib_once_e_ONE_SHOT_RISING(x) (Ib_once_e_ONE_SHOT_RISING = x)
#define Write0_Ib_once_e_ONE_SHOT_RISING() (Ib_once_e_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_e_ONE_SHOT_RISING() (Ib_once_e_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_Automatic;
#endif
#define Read_Ub_R_Automatic() Ub_R_Automatic
#define Write_Ub_R_Automatic(x) (Ub_R_Automatic = x)
#define Write0_Ub_R_Automatic() (Ub_R_Automatic = 0)
#define Write1_Ub_R_Automatic() (Ub_R_Automatic = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_f_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_f_ONE_SHOT_RISING() Ib_once_f_ONE_SHOT_RISING
#define Write_Ib_once_f_ONE_SHOT_RISING(x) (Ib_once_f_ONE_SHOT_RISING = x)
#define Write0_Ib_once_f_ONE_SHOT_RISING() (Ib_once_f_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_f_ONE_SHOT_RISING() (Ib_once_f_ONE_SHOT_RISING = 1)
const int pin_Ub_Y_LED_Automatic = 8; //PWM~; // PH5 OC4C
#ifndef NO_PROTOTYPES
// LDmicro provide these macros or functions.
#ifdef USE_MACRO
#define Read_Ub_Y_LED_Automatic() digitalRead(pin_Ub_Y_LED_Automatic)
#define Write0_Ub_Y_LED_Automatic() digitalWrite(pin_Ub_Y_LED_Automatic, LOW)
#define Write1_Ub_Y_LED_Automatic() digitalWrite(pin_Ub_Y_LED_Automatic, HIGH)
#define Write_Ub_Y_LED_Automatic(b) (b) ? Write1_Ub_Y_LED_Automatic() : Write0_Ub_Y_LED_Automatic()
#else
PROTO(BOOLEAN_t Read_Ub_Y_LED_Automatic(void));
PROTO(void Write_Ub_Y_LED_Automatic(BOOLEAN_t b));
PROTO(void Write1_Ub_Y_LED_Automatic(void));
PROTO(void Write0_Ub_Y_LED_Automatic(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_10_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_10_ONE_SHOT_RISING() Ib_once_10_ONE_SHOT_RISING
#define Write_Ib_once_10_ONE_SHOT_RISING(x) (Ib_once_10_ONE_SHOT_RISING = x)
#define Write0_Ib_once_10_ONE_SHOT_RISING() (Ib_once_10_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_10_ONE_SHOT_RISING() (Ib_once_10_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_speed;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_7;
#endif
#define Read_Ib_parThis_7() Ib_parThis_7
#define Write_Ib_parThis_7(x) (Ib_parThis_7 = x)
#define Write0_Ib_parThis_7() (Ib_parThis_7 = 0)
#define Write1_Ib_parThis_7() (Ib_parThis_7 = 1)
const int pin_Ub_X_faster = 36; // PC1 A9
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_faster() digitalRead(pin_Ub_X_faster)
#else
PROTO(BOOLEAN_t Read_Ub_X_faster(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_11_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_11_ONE_SHOT_RISING() Ib_once_11_ONE_SHOT_RISING
#define Write_Ib_once_11_ONE_SHOT_RISING(x) (Ib_once_11_ONE_SHOT_RISING = x)
#define Write0_Ib_once_11_ONE_SHOT_RISING() (Ib_once_11_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_11_ONE_SHOT_RISING() (Ib_once_11_ONE_SHOT_RISING = 1)
const int pin_Ub_X_slower = 37; // PC0 A8
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_slower() digitalRead(pin_Ub_X_slower)
#else
PROTO(BOOLEAN_t Read_Ub_X_slower(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_12_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_12_ONE_SHOT_RISING() Ib_once_12_ONE_SHOT_RISING
#define Write_Ib_once_12_ONE_SHOT_RISING(x) (Ib_once_12_ONE_SHOT_RISING = x)
#define Write0_Ib_once_12_ONE_SHOT_RISING() (Ib_once_12_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_12_ONE_SHOT_RISING() (Ib_once_12_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_accum;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_8;
#endif
#define Read_Ib_parThis_8() Ib_parThis_8
#define Write_Ib_parThis_8(x) (Ib_parThis_8 = x)
#define Write0_Ib_parThis_8() (Ib_parThis_8 = 0)
#define Write1_Ib_parThis_8() (Ib_parThis_8 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_9;
#endif
#define Read_Ib_parThis_9() Ib_parThis_9
#define Write_Ib_parThis_9(x) (Ib_parThis_9 = x)
#define Write0_Ib_parThis_9() (Ib_parThis_9 = 0)
#define Write1_Ib_parThis_9() (Ib_parThis_9 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_step;
#endif
#define Read_Ub_R_step() Ub_R_step
#define Write_Ub_R_step(x) (Ub_R_step = x)
#define Write0_Ub_R_step() (Ub_R_step = 0)
#define Write1_Ub_R_step() (Ub_R_step = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_seq;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_a;
#endif
#define Read_Ib_parThis_a() Ib_parThis_a
#define Write_Ib_parThis_a(x) (Ib_parThis_a = x)
#define Write0_Ib_parThis_a() (Ib_parThis_a = 0)
#define Write1_Ib_parThis_a() (Ib_parThis_a = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_takt;
#endif
#define Read_Ub_R_takt() Ub_R_takt
#define Write_Ub_R_takt(x) (Ub_R_takt = x)
#define Write0_Ub_R_takt() (Ub_R_takt = 0)
#define Write1_Ub_R_takt() (Ub_R_takt = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_Material;
#endif
#define Read_Ub_R_Material() Ub_R_Material
#define Write_Ub_R_Material(x) (Ub_R_Material = x)
#define Write0_Ub_R_Material() (Ub_R_Material = 0)
#define Write1_Ub_R_Material() (Ub_R_Material = 1)
const int pin_Ub_X_Start = 30; // PC7 A15
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_Start() digitalRead(pin_Ub_X_Start)
#else
PROTO(BOOLEAN_t Read_Ub_X_Start(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_13_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_13_ONE_SHOT_RISING() Ib_once_13_ONE_SHOT_RISING
#define Write_Ib_once_13_ONE_SHOT_RISING(x) (Ib_once_13_ONE_SHOT_RISING = x)
#define Write0_Ib_once_13_ONE_SHOT_RISING() (Ib_once_13_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_13_ONE_SHOT_RISING() (Ib_once_13_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_Aut;
#endif
#define Read_Ub_R_Aut() Ub_R_Aut
#define Write_Ub_R_Aut(x) (Ub_R_Aut = x)
#define Write0_Ub_R_Aut() (Ub_R_Aut = 0)
#define Write1_Ub_R_Aut() (Ub_R_Aut = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_2;
#endif
#define Read_Ib_parOut_2() Ib_parOut_2
#define Write_Ib_parOut_2(x) (Ib_parOut_2 = x)
#define Write0_Ib_parOut_2() (Ib_parOut_2 = 0)
#define Write1_Ib_parOut_2() (Ib_parOut_2 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_b;
#endif
#define Read_Ib_parThis_b() Ib_parThis_b
#define Write_Ib_parThis_b(x) (Ib_parThis_b = x)
#define Write0_Ib_parThis_b() (Ib_parThis_b = 0)
#define Write1_Ib_parThis_b() (Ib_parThis_b = 1)
const int pin_Ub_X_Stop = 31; // PC6 A14
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_Stop() digitalRead(pin_Ub_X_Stop)
#else
PROTO(BOOLEAN_t Read_Ub_X_Stop(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_Count;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_3;
#endif
#define Read_Ib_parOut_3() Ib_parOut_3
#define Write_Ib_parOut_3(x) (Ib_parOut_3 = x)
#define Write0_Ib_parOut_3() (Ib_parOut_3 = 0)
#define Write1_Ib_parOut_3() (Ib_parOut_3 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_c;
#endif
#define Read_Ib_parThis_c() Ib_parThis_c
#define Write_Ib_parThis_c(x) (Ib_parThis_c = x)
#define Write0_Ib_parThis_c() (Ib_parThis_c = 0)
#define Write1_Ib_parThis_c() (Ib_parThis_c = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_R_LCD;
#endif
#define Read_Ub_R_LCD() Ub_R_LCD
#define Write_Ub_R_LCD(x) (Ub_R_LCD = x)
#define Write0_Ub_R_LCD() (Ub_R_LCD = 0)
#define Write1_Ub_R_LCD() (Ub_R_LCD = 1)
const int pin_Ub_Y_LED_AUT = 52; // PB1 PCINT1/SCK
#ifndef NO_PROTOTYPES
// LDmicro provide these macros or functions.
#ifdef USE_MACRO
#define Read_Ub_Y_LED_AUT() digitalRead(pin_Ub_Y_LED_AUT)
#define Write0_Ub_Y_LED_AUT() digitalWrite(pin_Ub_Y_LED_AUT, LOW)
#define Write1_Ub_Y_LED_AUT() digitalWrite(pin_Ub_Y_LED_AUT, HIGH)
#define Write_Ub_Y_LED_AUT(b) (b) ? Write1_Ub_Y_LED_AUT() : Write0_Ub_Y_LED_AUT()
#else
PROTO(BOOLEAN_t Read_Ub_Y_LED_AUT(void));
PROTO(void Write_Ub_Y_LED_AUT(BOOLEAN_t b));
PROTO(void Write1_Ub_Y_LED_AUT(void));
PROTO(void Write0_Ub_Y_LED_AUT(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_14_ONE_SHOT_RISING;
#endif
#define Read_Ib_once_14_ONE_SHOT_RISING() Ib_once_14_ONE_SHOT_RISING
#define Write_Ib_once_14_ONE_SHOT_RISING(x) (Ib_once_14_ONE_SHOT_RISING = x)
#define Write0_Ib_once_14_ONE_SHOT_RISING() (Ib_once_14_ONE_SHOT_RISING = 0)
#define Write1_Ib_once_14_ONE_SHOT_RISING() (Ib_once_14_ONE_SHOT_RISING = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_izbr;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_d;
#endif
#define Read_Ib_parThis_d() Ib_parThis_d
#define Write_Ib_parThis_d(x) (Ib_parThis_d = x)
#define Write0_Ib_parThis_d() (Ib_parThis_d = 0)
#define Write1_Ib_parThis_d() (Ib_parThis_d = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_RX_Forward;
#endif
#define Read_Ub_RX_Forward() Ub_RX_Forward
#define Write_Ub_RX_Forward(x) (Ub_RX_Forward = x)
#define Write0_Ub_RX_Forward() (Ub_RX_Forward = 0)
#define Write1_Ub_RX_Forward() (Ub_RX_Forward = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ub_RX_Reverse;
#endif
#define Read_Ub_RX_Reverse() Ub_RX_Reverse
#define Write_Ub_RX_Reverse(x) (Ub_RX_Reverse = x)
#define Write0_Ub_RX_Reverse() (Ub_RX_Reverse = 0)
#define Write1_Ub_RX_Reverse() (Ub_RX_Reverse = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_4;
#endif
#define Read_Ib_parOut_4() Ib_parOut_4
#define Write_Ib_parOut_4(x) (Ib_parOut_4 = x)
#define Write0_Ib_parOut_4() (Ib_parOut_4 = 0)
#define Write1_Ib_parOut_4() (Ib_parOut_4 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_e;
#endif
#define Read_Ib_parThis_e() Ib_parThis_e
#define Write_Ib_parThis_e(x) (Ib_parThis_e = x)
#define Write0_Ib_parThis_e() (Ib_parThis_e = 0)
#define Write1_Ib_parThis_e() (Ib_parThis_e = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_5;
#endif
#define Read_Ib_parOut_5() Ib_parOut_5
#define Write_Ib_parOut_5(x) (Ib_parOut_5 = x)
#define Write0_Ib_parOut_5() (Ib_parOut_5 = 0)
#define Write1_Ib_parOut_5() (Ib_parOut_5 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_f;
#endif
#define Read_Ib_parThis_f() Ib_parThis_f
#define Write_Ib_parThis_f(x) (Ib_parThis_f = x)
#define Write0_Ib_parThis_f() (Ib_parThis_f = 0)
#define Write1_Ib_parThis_f() (Ib_parThis_f = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_6;
#endif
#define Read_Ib_parOut_6() Ib_parOut_6
#define Write_Ib_parOut_6(x) (Ib_parOut_6 = x)
#define Write0_Ib_parOut_6() (Ib_parOut_6 = 0)
#define Write1_Ib_parOut_6() (Ib_parOut_6 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_10;
#endif
#define Read_Ib_parThis_10() Ib_parThis_10
#define Write_Ib_parThis_10(x) (Ib_parThis_10 = x)
#define Write0_Ib_parThis_10() (Ib_parThis_10 = 0)
#define Write1_Ib_parThis_10() (Ib_parThis_10 = 1)
const int pin_Ub_Y_Steps_for_Motor = 10; //PWM~; // PB4 PCINT4/OC2A
#ifndef NO_PROTOTYPES
// LDmicro provide these macros or functions.
#ifdef USE_MACRO
#define Read_Ub_Y_Steps_for_Motor() digitalRead(pin_Ub_Y_Steps_for_Motor)
#define Write0_Ub_Y_Steps_for_Motor() digitalWrite(pin_Ub_Y_Steps_for_Motor, LOW)
#define Write1_Ub_Y_Steps_for_Motor() digitalWrite(pin_Ub_Y_Steps_for_Motor, HIGH)
#define Write_Ub_Y_Steps_for_Motor(b) (b) ? Write1_Ub_Y_Steps_for_Motor() : Write0_Ub_Y_Steps_for_Motor()
#else
PROTO(BOOLEAN_t Read_Ub_Y_Steps_for_Motor(void));
PROTO(void Write_Ub_Y_Steps_for_Motor(BOOLEAN_t b));
PROTO(void Write1_Ub_Y_Steps_for_Motor(void));
PROTO(void Write0_Ub_Y_Steps_for_Motor(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parOut_7;
#endif
#define Read_Ib_parOut_7() Ib_parOut_7
#define Write_Ib_parOut_7(x) (Ib_parOut_7 = x)
#define Write0_Ib_parOut_7() (Ib_parOut_7 = 0)
#define Write1_Ib_parOut_7() (Ib_parOut_7 = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_parThis_11;
#endif
#define Read_Ib_parThis_11() Ib_parThis_11
#define Write_Ib_parThis_11(x) (Ib_parThis_11 = x)
#define Write0_Ib_parThis_11() (Ib_parThis_11 = 0)
#define Write1_Ib_parThis_11() (Ib_parThis_11 = 1)
const int pin_Ub_Y_Direction = 11; //PWM~; // PB5 PCINT5/OC1A
#ifndef NO_PROTOTYPES
// LDmicro provide these macros or functions.
#ifdef USE_MACRO
#define Read_Ub_Y_Direction() digitalRead(pin_Ub_Y_Direction)
#define Write0_Ub_Y_Direction() digitalWrite(pin_Ub_Y_Direction, LOW)
#define Write1_Ub_Y_Direction() digitalWrite(pin_Ub_Y_Direction, HIGH)
#define Write_Ub_Y_Direction(b) (b) ? Write1_Ub_Y_Direction() : Write0_Ub_Y_Direction()
#else
PROTO(BOOLEAN_t Read_Ub_Y_Direction(void));
PROTO(void Write_Ub_Y_Direction(BOOLEAN_t b));
PROTO(void Write1_Ub_Y_Direction(void));
PROTO(void Write0_Ub_Y_Direction(void));
#endif
#endif
const int pin_Ub_X_Foto_Cell = 42; // PL7
#ifndef NO_PROTOTYPES
// LDmicro provide this macro or function.
#ifdef USE_MACRO
#define Read_Ub_X_Foto_Cell() digitalRead(pin_Ub_X_Foto_Cell)
#else
PROTO(BOOLEAN_t Read_Ub_X_Foto_Cell(void));
#endif
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_T_On_foto;
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_T_Off_foto_cell;
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ui_T_lcd_on;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_15_ONE_SHOT_FALLING;
#endif
#define Read_Ib_once_15_ONE_SHOT_FALLING() Ib_once_15_ONE_SHOT_FALLING
#define Write_Ib_once_15_ONE_SHOT_FALLING(x) (Ib_once_15_ONE_SHOT_FALLING = x)
#define Write0_Ib_once_15_ONE_SHOT_FALLING() (Ib_once_15_ONE_SHOT_FALLING = 0)
#define Write1_Ib_once_15_ONE_SHOT_FALLING() (Ib_once_15_ONE_SHOT_FALLING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_16_FMTD_STR;
#endif
#define Read_Ib_once_16_FMTD_STR() Ib_once_16_FMTD_STR
#define Write_Ib_once_16_FMTD_STR(x) (Ib_once_16_FMTD_STR = x)
#define Write0_Ib_once_16_FMTD_STR() (Ib_once_16_FMTD_STR = 0)
#define Write1_Ib_once_16_FMTD_STR() (Ib_once_16_FMTD_STR = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_fmtd_0_seq;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_fmtd_3_doSend;
#endif
#define Read_Ib_fmtd_3_doSend() Ib_fmtd_3_doSend
#define Write_Ib_fmtd_3_doSend(x) (Ib_fmtd_3_doSend = x)
#define Write0_Ib_fmtd_3_doSend() (Ib_fmtd_3_doSend = 0)
#define Write1_Ib_fmtd_3_doSend() (Ib_fmtd_3_doSend = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_seqScratch;
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_scratch;
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_charToUart;
#endif
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_fmtd_1_convertState;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_fmtd_2_isLeadingZero;
#endif
#define Read_Ib_fmtd_2_isLeadingZero() Ib_fmtd_2_isLeadingZero
#define Write_Ib_fmtd_2_isLeadingZero(x) (Ib_fmtd_2_isLeadingZero = x)
#define Write0_Ib_fmtd_2_isLeadingZero() (Ib_fmtd_2_isLeadingZero = 0)
#define Write1_Ib_fmtd_2_isLeadingZero() (Ib_fmtd_2_isLeadingZero = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_17_ONE_SHOT_FALLING;
#endif
#define Read_Ib_once_17_ONE_SHOT_FALLING() Ib_once_17_ONE_SHOT_FALLING
#define Write_Ib_once_17_ONE_SHOT_FALLING(x) (Ib_once_17_ONE_SHOT_FALLING = x)
#define Write0_Ib_once_17_ONE_SHOT_FALLING() (Ib_once_17_ONE_SHOT_FALLING = 0)
#define Write1_Ib_once_17_ONE_SHOT_FALLING() (Ib_once_17_ONE_SHOT_FALLING = 1)
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_once_18_FMTD_STR;
#endif
#define Read_Ib_once_18_FMTD_STR() Ib_once_18_FMTD_STR
#define Write_Ib_once_18_FMTD_STR(x) (Ib_once_18_FMTD_STR = x)
#define Write0_Ib_once_18_FMTD_STR() (Ib_once_18_FMTD_STR = 0)
#define Write1_Ib_once_18_FMTD_STR() (Ib_once_18_FMTD_STR = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_fmtd_4_seq;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_fmtd_7_doSend;
#endif
#define Read_Ib_fmtd_7_doSend() Ib_fmtd_7_doSend
#define Write_Ib_fmtd_7_doSend(x) (Ib_fmtd_7_doSend = x)
#define Write0_Ib_fmtd_7_doSend() (Ib_fmtd_7_doSend = 0)
#define Write1_Ib_fmtd_7_doSend() (Ib_fmtd_7_doSend = 1)
#ifdef EXTERN_EVERYTHING
extern SWORD Ii_fmtd_5_convertState;
#endif
#ifdef EXTERN_EVERYTHING
extern BOOLEAN_t Ib_fmtd_6_isLeadingZero;
#endif
#define Read_Ib_fmtd_6_isLeadingZero() Ib_fmtd_6_isLeadingZero
#define Write_Ib_fmtd_6_isLeadingZero(x) (Ib_fmtd_6_isLeadingZero = x)
#define Write0_Ib_fmtd_6_isLeadingZero() (Ib_fmtd_6_isLeadingZero = 0)
#define Write1_Ib_fmtd_6_isLeadingZero() (Ib_fmtd_6_isLeadingZero = 1)
#endif
// You can comment or delete this line after provide the I/O pin mapping for ARDUINO board in C:\Users\q1453442\Desktop\LDMicro\build5411\Test\DriverStepMotorMerge\ladder.h.
pert
June 23, 2021, 7:05pm
14
Hi @ckiernan . Although it's always good to post the code on the forum. In this particular case of a very complex program with multiple files, I'm going to ask you to also put the entire sketch in a .zip
file and attach it in a reply here. I think I will have an easier time of getting an understanding of the whole thing.
Also, when you do post code on the forum, please always put it in a code block, just as you did when you posted the error messages:
Click the </>
icon on the post composer toolbar. This will add the forum's code block markup (```
) to your reply to make sure the error messages are correctly formatted.
Press Ctrl +V . This will paste the compilation output into the code block.
Move the cursor outside of the code block markup before you add any additional text to your reply.
Will do, I initially tried to attach my code files but wasn't allowed to and if that's resolved, I'll clean up this post as you recommend. Thanks for the feedback - Carey
pert
June 24, 2021, 12:04am
16
Ah, I see. The forum uses a "trust level" level system to determine which privileges each forum user has. At the "Trust Level 0" level you're currently at, attachments are disabled. That limitation is lifted once you reach "Trust Level 1". You can see the requirements for reaching level 1 here:
I think they are easy to fulfill.
Hi Pert, Thanks for sharing this information. I've put the code nippets in </> code markup blocks and will replace these with a .zip file when I achieve level 1 edit rights. Regards, - Carey
system
Closed
October 22, 2021, 3:25pm
18
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.