19. Q&A of PC Host Computer Programming
“Please Check “Read Me At First””
Note:
For “libzmo.so” library in so2022.rar of ARM, when you used LOCAL interface to call ZAUX_DirectCommand command, the command character string of interface parameter 2 can’t exceed 100 bytes.
Questions & Answer:
Question:
PC Host Computer Power Down? / Host Computer Not Connect to Control Card?
Solutions:
(1) Confirm through Function Returned Value
Actually, each API has the return value, then check the value from error code list (Q & A 1).
(2) In Timer, Host Computer Sends Message to Controller, If Received, No Power Down, If Not Received, Already Powered off. Generally, Use Variables Assignment.
--How to Check--
Confirm whether there is an IP conflict. Because IP conflict may occur when using dynamic IP.
Confirm whether the Ethernet and the cable are stable. You can try to replace the cable with better anti-interference performance.
Confirm whether the library is normal. It is recommended to update the anti-drop library.
Synchronously compare whether RTSys is offline.
Check whether network resources are occupied (such as switches, Gigabit cameras, 10G networks, etc.), and whether WIFI IP conflicts. It is recommended to use an independent network card.
Check whether your PC is in sleep state. It is recommended to disable computer sleep.
Check whether the controller connection port is occupied. You can print and view the port status through the port_status command.
Check whether the network card parameters are correct. It is recommended to set 100M full-duplex and disable the energy-saving mode of the network card.
You can use the eth_mode command to modify the appropriate network port mode.
Question:
PC Command Sending Limit?
“motion buffer is full, but keep saving commands into the buffer?”
Answer:
Before sending the command, you need to check whether the buffer is full. Specifically, you can use the command “ZAux_Direct_GetRemain_Buffer” to get how many buffers the axis remain, when it shows there are buffers, you can write commands into the buffer.
Question:
PC Sent the Motion Command, But Not Move?
Solutions:
(1)
Check whether the controller BASIC program continuously calls the stop command, which can be observed by clearing the last stop reason.
(2) Check the configuration of the basic axis parameters, whether there are configurations such as UNITS is too small, ATYPE=0, SPEED=0, etc.
(3) Check whether the same absolute position command is always issued.
(4) Check whether the axis status has an error (ZAux_Direct_GetAxisStatus). If an error is reported, check whether the limit is encountered, whether the normally open and normally closed sensors correspond (signal inversion is required).
(5) Check whether the axis is enabled, whether the motor brake is turned off, and whether the servo motor has alarm, whether the pulley of the coupling is loose, whether the motor is blocked.
(6) Check the hardware wiring, such as whether the pulse axis differential /s ingle-end connection is correct.
(7) Pulse axis connection, check whether the INVERT_STEP pulse mode setting is set correctly, the default pulse direction mode.
(8) Print the return value of the motion command to see if it can return the value normally.
(9) Check whether the drive limit has taken effect. It is recommended to use the drive software to manually move to check whether the movement is normal.
(10) Check whether there is a pin inconsistency when the high-speed line and low-speed line of the drive are switched, and whether the drive parameters need to be reconfigured
Question:
MotionRT7 & Host Computer Power Down?
Answer:
Cancel “License” parameter configured in MotionRT7. Because it is configured when without the card. That is, you use the Trial Version of MotionRT (3-hour).
Question:
No Controller Scanned by Ethernet for PC Host Computer?
Solutions:
(1) Check whether RTSys / ZDevelop can scan the controller.
(2) Check whether the network cable is connected correctly.
(3) Observe whether the RUN light and ALM light of the board are ON and flashing. If so, there is a hardware abnormality problem.
(4) Confirm whether the controller IP has been modified. You can use the serial port to connect to it, then open the controller status through the RTSys/ZDevelop software, and check the controller IP.
(5)
Confirm whether it can be pinged.
(6)
Confirm whether there is a network segment conflict.
(7)
Confirm whether the number of network port channels is fully connected. You can print the number of network port channels by sending the command [?*PORT_STATUS] in the [Online Command] of the RTSys/ZDevelop software to check.
20. Q&A of Controller / Control Card for Some Specified Phenomenon “Please Check “Read Me At First”” Q & A for PCI Series Motion Control Card Question: No PCI Card Scanned? When using PCI card to communicate with IPC, no PCI card mark is shown in device manager. Answer: Generally, this situation is caused by two reasons: (1) There are too many expansion boards or other devices connected to IPC, which causes insufficient power for IPC, PCI card can’t be powered on, no way to be scanned. (2) PCI / PCIE card drive is not installed or not matched, check in device manager. Then, you can try to enter BOIS to increase the motherboard detection time, which may not be effective. Some motherboards limit the content of delayed inspection, such as only hard disk detection and memory detection. If the configuration does not take effect, please contact the motherboard supplier to provide BOIS for delayed detection to upgrade the motherboard firmware. Specifical Steps: Step 1: uninstall the XPCIE, PCI and PCIE control card drivers. Step 2: try to soft-restart the operating system only, and see if the PCI device can be read without powering off. If the operating system can read the card every time it is soft-restarted. Step 3: after step 2, unplug the power supply, wait for the motherboard to be completely powered off, and then power it on again to see if the PCI device can be read. If it cannot be read every time the power is off, see the exact problem and do corresponding solution. Step 4:if the PCI device is occasionally read and occasionally not read when executing step 2 and 3, check whether all the XPCIE, PCI and PCIe card slots are used, if the card slot is used too much, try to reduce the number of card slots to one. Step 5: if the error is still after step 4, clear the oxide layer of the gold finger of XPCIE, PCI and PCIe control card, and check the contact problem between the card and the card slot. Step 6: if the error is still after step 5, try to change the card slot position. Step 7: if the error is still after step 6, try to change same type of XPCIE, PCI and PCIE card / the third-party card. Step 8: if the error is still after step 7, please contact with us. Q & A for VPLC7XX Vision Motion Controller Question: VPLC7XX Not Powered ON / VPLC7XX Auto Power OFF after ON? --press the ON button after powered on, VPLC7XX doesn’t have reaction-- --press the ON button after powered on, it is normal, but it will automatically power off after a certain of time-- Solutions: 1. Check whether the power line connect to the power supply. 2. Check whether the power supply is connected correctly (positive and negative are correct) 3. Check whether the power supply power is enough. General Q & A for Controller / Control Card Question: Control Card is Dead / Commands Not Run? For Example: When there are lots of motion commands: *when Basic is running, the program is stuck in the motion instruction. *when the PC is running, calling the motion instruction returns 20003 error code. Possible Reason: Since the motion buffer space of each axis is limited, when too many motion instructions are scanned and put into the motion buffer, the multi-level motion buffer is filled up. If the program continues to scan more motion instructions, the program will be blocked until those motion instructions are completed and exited in sequence, then there is space in the motion buffer. The motion instructions will continue to enter the motion buffer. You can check how many remaining buffers by the REMAIN_BUFFER command. Solutions: Check how many remaining buffers, then the logic will be “insert when there is buffer”. IF REMAIN_BUFFER(1) > 0 THEN 'if there is buffer space, call line motion command MOVE(10) movetime = movetime +1 ENDIF For PC functional library, solution method is same. Question: Controller Power-Down? For Example: Solutions: (1) Check if the network cable is loose, press the crystal head of the network cable or replace the network cable. To eliminate interference problems, try to replace the shielded Category 6 network cable. (2) Modify the controller network port mode ETH_MODE. (3) Modify the anti-drop library. (4) Check if the controller is restarted, and verify it with Basic code. (5) Use wrieshark to check if there are broadcast-type messages or a large number of broadcast packets before the connection is interrupted. (6) As shown in the figure below, check whether this service in your PC is enabled, and disable it if it is enabled. Question: Controller & Drive Connected, Controller will OFF after Powered ON? Solution: (1) Check whether the 24V in the controller axis port is used to power the driver's working panel. The 24V power in the axis port is insufficient and cannot power the driver. (2) Check the controller power supply and check whether the power supply is short-circuited. (3) It is recommended to power the controller separately when troubleshooting, unplug all IO terminals and axis interfaces on the controller, observe whether the controller is normal, and eliminate controller hardware problems. Then connect the wires in sequence and check for wiring problems.
21. Q&A of Teach Pendant for Some Specified Phenomenon
“Please Check “Read Me At First””
Question:
Fail to Upgrade?
Teach Pendant & Controller, Error2001 when Downloading USB ZAR File?
Answer:
Upgrade the latest firmware, then you can use teach pendant to download ZAR file offline normally.
Note:
When downloading ZAR file, teach pendant will disconnect to controller, which is normal.
22. Q&A of Axis Motion for Some Specified Phenomenon
“Please Check “Read Me At First”
"Usually, Zmotion Bus Axis is mainly EtherCAT"
1.
Q & A of Motor Axis
Here mainly shows questions about motor axis on Homing. And give corresponding solutions.
Question:
Motor Homing, Axis Not Move?
After sending axis homing command, axis doesn’t give reaction?
Solutions:
(1) Firstly, check whether the axis status is alarmed.
(2) Check whether the axis can be controlled normally.
(3)
If it is a bus driver, please check whether the IN signal of the bus driver needs to be reversed. Finally, check whether the origin signal is in the trigger state and whether the origin signal needs to be reversed.
(4) Whether the zero return method of the bus driver corresponds to the method in the driver manual.
Question:
Error when Z Homing for Bus Motor?
Answer:
For bus type axis, it doesn’t support controller Z homing, that is, you need to connect encoder Z signal to controller, because the Z signal is on the drive, not on controller, then please use drive Z homing function, specifically, using homing mode 21 (DATUM=21) to call drive homing mode.
For homing method, please refer to Basic Programming Manual
DATUM
command.
Question:
Bus Drive Homing Axis Not Move?
When using bus drive to do homing, the axis doesn’t move sometimes, but the axis state in in homing state all the time. And you found it had switched to homing mode when after checking related data dictionary data, also 12bit of 6041 is shown 0, which means the homing completed.
Solutions:
(1) Check whether the axis can perform manual movement normally, and observe whether the limit alarm is triggered.
(2)Check the drive parameters, whether the 6099-drive homing SPEED and the 609A-drive homing ACCEL are too small, and check whether the secondary creep speed is normal.
(3) Verify DPOS and MPOS, when powered on, MPOS becomes large, then big deviation is big, it is powered off. Because the drive modified its parameters, cancel the verification.
Question:
Call DATUM21, in EtherCAT Drive Homing Mode, Axis Moves to MPOS=0 Direction?
Solutions:
(1)
If you used PDO=-1, and no 6060 was added in drive configuration, that is, the homing mode is not configured, it will cause abnormal.
(2)
Set current position as 0 in drive homing mode.
Question
Call DATUM(13), but It Returns Zero Inversely?
Possible Reasons:
A.
The origin signal polarity may be reversed. Check whether the origin sensor signal is normally closed by default.
B.
The motor direction may be reversed. Check whether the direction of manual movement is consistent.
C.
The limit signal polarity is wrong, or the positive and negative limit origin signals are bound incorrectly.
D.
Program problem: after DATUM(13) is triggered, other reverse homing modes are called.
E.
The origin signal is triggered by mistake.
Question:
In DATUM(3) Mode, Encountered Origin Switch, But Not Stop?
Axis is between origin and negative position limit, use DATUM3 (homing mode 2) to drive one axis, it may occur “not return when met the origin, still move towards”, at this time, if you stop axis, and drive the axis to go inversely, it will keep heading towards the forward collision.
Steps:
(1)
Manually move to confirm the direction of the motor.
(2) Capture the waveform by the
SCOPE
to confirm whether there is an occasional situation where the motion control moves in the positive direction, but the actual motion direction is opposite and hits the negative limit.
(3) Check the control program logic, close the host computer software, write a script with ZDevelop/ RTSys, reproduce the host control logic, and repeat the movement. If the same problem occurs, proceed to the next step.
(4) Check the hardware wiring to see if twisted shielded pair cables are used. After replacement, test the wiring separately.
(5) If your firmware version and controller are old, update the latest firmware, or change on new controller, if still, please see next.
(6) Check the basic parameter settings, like, SPEED, ACCEL, DECEL, etc., if still, please see next.
(7) Check whether it is a driver problem, which may be a stepper motor execution problem.
2. Q & A of Vibration
Question:
Abnormal Speed Shaking for EtherCAT Axis or Pulse Axis / Big Speed Wave?
--Solutions for Bus Axis?--
(1)
Use SERVO_PERIOD command to modify bus period, then compare waveforms to see whether it is normal.
(2)
Set SYSTEM_ZSET=128, that is, set bit7 as 1 / 0 to see ON bus clock optimization or OFF is good.
(3) Set initial speed LSPEED is ≤ 10% of SPEED, and adjust it from min value.
(4)
Use ZML_INFO command to modify DC offset time, try bus periods of 1/2, 1/4, 1/8, 0.7, then see which one is good.
(5) Use STEPPER_SMOOTH command to reduce the smooth of cam pulse OUT by system, please not set as 0, and the minimal value can’t exceed the period of 1/4.
(6) If your motion controller is VPLC7XX, change CPU occupancy rate in RT software “config” interface, then check the waveform, if not VPLC7XX, ignore this.
--Solutions for Pulse Axis?--
(1) Set initial speed LSPEED is ≤ 10% of SPEED, and adjust it from min value.
(2) Use STEPPER_SMOOTH command to reduce the smooth of cam pulse OUT by system, please not set as 0, and the minimal value can’t exceed the period of 1/4.
Question:
Position Limit Vibration?
The machine moves up and down on a single axis. When it moves upward to the highest point and hits the limit, there will be abnormal noise and vibration when it moves in the reverse direction.
Solutions:
(1) Increase motor rigidity, increase fast deceleration value.
(2) When at position limit, add DELAY.
Question:
In Manual Motion, It Shakes Seriously when Stop?
Possible Reason:
Call CANCEL(2) command when stop, the FASTDEC value is set big.
Solutions:
(1)
Call CANCEL command to decrease former FASTDEC value, after stopped, modify it to normal big value.
(2)
Use CANCEL(4) mode to cancel current motion and buffer motion, for stop speed, please refer to DECEL.
(3)
Check whether the dictionary parameters of ACCEL & DECEL in the servo motor are reasonable (important!).
3. Q & A of Other Problems
Question:
Motor Direction Inversed? (How to Modify Motor Direction?)
Solutions:
(1)Check whether motor directional cable connects to controller directional cable correspondingly.
(2)If it is pulse method, please use INVERT_STEP command (exact usage can be obtained from BASIC programming manual) to modify pulse logic and observe effect, or modify drive signal cable. If it is bus method, modify motor direction according to data dictionary described in Drive manual.
(3) Use drive software to modify motor direction, for some drives, when the direction is modified, encoder direction has no change, please note modify encoder direction.
Question:
Motion Command is Sent, Motor Not Move?
Solutions:
“please refer to Q&A 1 Error Code List / Basic Programming Manual Error Code List”
(1) Use the “Manual” tool of the RTSys to observe whether the motor rotates. If it rotates, it is a program problem.
(2) Check whether the axis DPOS changes. If no, confirm whether the soft/hard limit and alarm signals are in effect, and whether the axis status AXISSTATUS is normal.
(3) Confirm whether the controller sends pulses normally.
(4) Confirm whether the motor is enabled successfully.
(5)Confirm whether the axis type ATYPE of the corresponding axis is correct.
(6)Confirm whether the pulse equivalent UNITS and speed values are appropriate. If there is encoder feedback, check whether MPOS changes.
(7) Confirm whether the driver pulse mode and the controller pulse mode (INVERT_STEP) match.
(8) Whether an alarm is generated on the controller or driver side.
(9)
If the above steps cannot solve the problem, check whether the physical wiring is correct and re-check.
Question:
Axis Can Not Stop Motion Immediately? (How to Make Axis Stop Motion Immediately?)
Solutions:
(1)Use CANCEL / RAPIDSTOP command to stop, for usage, please refer to RTBasic Manual.
(2) Increase FASTDEC (fast deceleration) value to reduce the axis overshoot distance.
(3) Use RAPIDSTOP(3) command, send “interrupt pulse immediately” command, then observe whether the overshooting distance is OK.
Note: not recommend to interrupt pulse immediately when in high-speed occasions.
Question:
Arc Motion Direction & Planned Direction are Opposite?
Possible Reasons:
A.
Motor directions are not corresponding.
B.
Selected Axis No. in program are note corresponding, like, normal is BASE(0,1), but now the program is BASE(1,0).
--Solutions for “Motion Direction Not Correspond”--
(1) Check whether motor directional cable connects to controller directional cable correspondingly.
(2) If it is pulse method, please use INVERT_STEP command (exact usage can be obtained from BASIC programming manual) to modify pulse logic and observe effect, or modify drive signal cable. If it is bus method, modify motor direction according to data dictionary described in Drive manual.
(3) Use drive software to modify motor direction, for some drives, when the direction is modified, encoder direction has no change, please note modify encoder direction.
--Solutions for “Axis No. Not Correspond”--
(1)
Use RTSys “manual” tool to observe.
Question:
How to Synchronize with Gantry by Controller?
Solutions:
(1)
Recommendation: use drive’s gantry synchronization algorithm directly.
(2)
Use absolute servo (or use together with grating ruler, then get higher precision), firstly set one Y1Y2 normal offset value, when back to origin each time, according to encoder original encoder, do Gantry correction.
(3)Your controller can use ADDAX command to do superposition, when two drive’s respond and performance feedback are not consistent, or one axis alarms but no action, you can judge the two encoder’s deviation values in program, and add one torque limit to protect.
Question:
How to Check Whether Motor Arrives Really?
Answer:
Firstly, judge IDLE, then judge MPOS value / drive feedback on position signal (MPOS).
Question:
Axis Keeps Reverse Motion, when Meets Position Limit - , Axis Keeps Moving, then Quick to Back to Position before Limit?
Solutions:
(1)
Check whether controller axis parameters are reasonable, like, SPEED, ACCEL, DECEL, etc.
(2)
Check whether the ACCEL & DECEL dictionary parameters set inside the servo driver are correct. (Important!!!)
Question:
Draw Circle by XY Axes Interpolation, at Low Speed, Normal, but at High Speed, Deformed?
Possible Reason:
Caused by bad drive following function.
Solutions:
(1)Capture DPOS (demand position) and MPOS (measurement position) by SCOPE, see whether trajectory planning and feedback are normal.
(2) If DPOS is correct, but the MPOS is not, adjust the drive parameters to enhance synchronization performance, like, inertia ratio.
(3)Check controller axis parameters, whether they are reasonable, like, UNITS, SPEED, ACCEL, DECEL, etc.
Question:
Your Controller Not Support HW Function (Hardware Position Comparison Output), How to Operate OUT Precisely in Axis Motion?
If your motion controller doesn’t support hardware position comparison output function, that is, the HW function (precision output), but you want to do that with continuous action, and don’t want to split the trajectory, insert IO commands, how to do?
Solution:
Use other axes’ buffer resources, matching MOVE_WAIT with MOVE_OP2. Please note OP2 output time.
(Get DPOS, no matter getting through latch or teaching trajectory in advance).
For Example:
Suppose the axis is 0, then, you can use the buffer of axis 1 to watch and output position:
pos = 100.36
move_wait(dpos,0,1,pos)axis(1)
move_op2(11,1,50)axis(1)
POS is axis 0 needed position, use axis 1 buffer to watch DPOS(0), when the condition is OK, open OUT11 50MS.