10. Q&A of Hardware Interface Indication LED Generally, there are 3 LED on our controllers: POW, RUN, and ALM, they are all used to show the state. POW: for power supply, it is ON when the power is connected. RUN: for the motion, it is ON when it runs normally. ALM: for the motion, it is ON when there is error during running. Question A: POW Led is ON, but RUN is OFF? Answer A: 1) Check power supply wiring, see if it only connects IO power, the main power is not connected. 2) Check whether the power of the power supply is enough. When the power supply’s voltage is <18V, but not <5V, then it increases at 24V (it will restart when <5V), only POWER will be light. Therefore, it is best to supply power to the controller alone, and restart the controller after adjustment. 3) Check whether the ALM led flickers regularly (hardware problem). 4) For controller that is below ZMC3XX, when it is in firmware upgrade, that is, in BOIS state, RUN is not ON. For controller that is ZMC4XX and above, RUN led is ON all the time. Question B: RUN Led is ON, but ALM is ON also? Answer B: Generally, the problem is in the program, maybe HMI / BASIC / PLC program. Please check ZDevelop / RTSys error code, and see corresponding reason and solution. Also, you can download one empty project into controller, see whether ALM is ON or not, if still, the problem maybe hardware.
11. Q&A of Hardware Interface Main Power Supply
Please note:
The controller’s main power IN should be
24V DC power supply, and the minimal input current should be 0.5A (which corresponding power is 12W and above), that is, valid power supplies are DC24V and input the current >0.5A, and the controller working current is 0.4A.
For main power supply, DC18V-36V are OK. But recommend you use DC24V
, because most of controllers use main power to supply the power for other modules, if not DC24V, the parameters of other interfaces maybe inconsistent with parameters provided by the user manual.
12. Q&A of Hardware Interface U Disk U disk itself has many formats, our controller can know the FAT format, that is, like, eFAT format, not sure whether it can be recognized. If you want to simulate the U disk, you can build one folder whose name is “udisk” under RTSys path.
13. Q&A of Communication Interface "CAN" (1) General Description A. Wiring l Recommend you usethe daisy chain topology for wiring (the star topology structure cannot be used). And when the use environment is ideal and there are no many nodes, the branch structure also can be considered. l Please connect a 120Ω terminal resistor in parallel to each end of the CAN bus for matching the circuit impedance and ensuring communication stability. l Please be sure to connect the public ends of each node on the CAN bus to prevent the CAN chip from burning out. l Please useSTP (Shielded Twisted Pair), especially in bad environments, and make sure the shielding layer is fully grounded. B. Notes Ø Parameters in user manual only can be referred, that is, real supported communication speed and cable length should be tested according to real situation. Ø Supported communication speed is inversely proportional to the cable length. Ø Notes of IO starting addresses: Open RTSys software, find controller – state the controller, then click “ZcanNode” to get the controller’s IO range. Then, you can assign IO address according to this range and the starting address defined in user manual through dialing expansion board’s front 4-code, using 8421 rule to dial the code, then to assign stating IO addresses to expansion card, during this, don’t make them be same. (2) Related Questions & Solutions Question A: ZCAN Expansion Board Not Communicate? Answer A: 1) Check power supply’s wiring: expansion board’s 24V power and IO power use dual-power. 2) Recommend you use the daisy chain topology for wiring (the star topology structure cannot be used). And use STP cable, connecting the shielded layer to the shell. 3) Check dial code ID (should be correct) and IO address (can’t conflict). 4) Check whether code 8 of expansion board’s DIP switch is ON (if there are several expansion boards, only the last one should dial code 8 as ON). See whether there is one 120-ohm resistor between CANL and CANH, if there are several expansion boards, please connect one 120-ohm resistor in parallel. 5) Check controller’s CANIO_ADDRESS configuration, it should be 32, 32 means master station. 6) The problem is interference. Measure CANL and CANH voltage, the normal value is 0.04A. You can add one 24V DC filter when connecting to expansion module’s power to reduce the interference. Question B: Controller CAN Not Communicate? Answer B: 1) Check the power: main power and IO power should supply separately. 2) Modify the Baud Rate: short distance, increase the baud rate, long distance, decrease the baud rate. 3) Controller or the CAN port error, you can use the third-party software to communicate and test. 4) Wiring error or there is interference on communication: use STP cable, don’t go with strong circuit. 5) Check controller’s CANIO_ADDRESS configuration, it should be 32, 32 means master station. Question C: CAN Communication Not Stable? For Example: Sometimes, it may appear voltage signal mutation when some third-party devices read the controller AD signal and transfer it back through CAN communication. Answer C: Generally, add one delay about 50ms after outputting voltage, then it can read AD value normally. Question D: Alarm “passed because No buff” when CAN Reads Data? For Example: When CAN is reading the data, it alarms “Warn file: “READRADAR.BAS”line: 27 task: 8, Can message: 53 passed because No buff.” Answer D: Because the reading speed is lower than received. The CAN chip receives very quick, then Basic program reads it too fast. Now, please reduce the baud rate or speed up custom communication’s reading speed, and optimize BASIC program.
14. Q&A of Communication Interface "Ethernet" (1) General Description For Ethernet, please note: PC IP and controller IP should be at same network segment. Controller factory IP address is 192.168.0.11, and the port No. is 502. Please check PC IP, if it is not 192.168.0.XXX, please modify it, then do connection. If you don’t remember controller’s IP, you can connect through serial port, then check IP. Serial port’s default parameters: baud rate 38400, data bit 8, no parity. And default values will be resumed after powered off. For some laptops, there is the conflict of multiple network cards, at this time, please try to prohibit other cards at first (/ make other net card be same segment as controller). For the controller that includes several ethernets, two ethernets’ IP can’ t be same segment. (2) Related Questions & Solutions Question A: Fail to Connect Controller with PC by Ethernet? For Example: *Ethernet unconnected *IP not scanned *Connected, but break repeatedly *Ethernet led is off *Ethernet power down *In PC program, error code 20009 / 3402 Possible Reasons: --network communication is not stable-- --there are a lot of single IO in PC program-- --for some net cards (Gigabit card), when some parameters (like, dual-station mode, connection velocity, etc.) set in advanced property are not matched, it will cause ethernet led is not ON, or because the hardware is abnormal-- Answer A: 1) How to Check: 2) Solution 1: Please refer to this document: 3) Solution 2: See whether it can be connected to RTSys / ZDevelop. Ø Connect to RTSys / ZDevelop Successfully: The problem is your PC program. Please check return value of controller connection function (such as, OpenEth), at this time, vs will directly alarm, can’t find the entry. Generally, you put the Zmotion function library incorrectly or the compiled type (32 bit, 64 bit) and dll file type is inconsistent. Ø Fail to Connect to RTSys / ZDevelop The problem is in physical or IP. Please check the controller POWER and RUN led. If they are off now, net card / cable error (if there is one interchanger, check the quality). If they are on now, the hardware is normal, next, test PING. Before PING test, make sure PC and controller IP are in same segment (including the Subnet Mask), controller default IP is 192.168.0.11, subnet mask is 255.255.255.0, then your PC can be set as 192.168.0.xx. “PING test code: ping 192.168.0.11 -t” Question B: PING Test Data Abnormal? Answer B: 1) Please check whether the net cable / net port is interfered, or check whether there is problem on the net card. a. Net cable should be category 5e shielded cable, and motor power line can be cross (not parallel). b. If the cable is OK, the problem maybe net card, you can change one independent net card. c. If this situation is not so frequent (PC program just occasional lags), then you can use one PING small tool that is with log to keep PING, keep memorizing (contact us to get the small tool). If PING data are normal, but your PC program lags seriously, optimize your PC program from following aspects: Don’t read single IO state and axis state frequently, better to read in bulk, and add one delay. To read IO, the command can be “GetModbusIn”. To read motor position, the command can be “GetModbusDpos”. To read axis parameter, the command can be “GetAllAxisPara” (returned is floating array). Not recommend you read axis state with high-frequency, reading AXIS_STOPREASON (history reason) also can detect the error state. When the motion buffer is full, don’t send continuously and in cycle without delay, please add the delay. 2) Check Physical Wiring a. see the cable: can’t be damaged and should be in good contact). b. see the slot: plug the port correctly, don’t mix EtherCAT and Ethernet. 3) Check Net Configuration a. see IP: whether they are in same segment. b. see IP2: if there are multiple net-card, may some of them are in same segment. c. see your PC firewall: your PC safety is high, you can close the firewall. d. see net-card parameters: the problem is the net-card adaption, for example, some cards inside have already set dual-station, connection velocity parameters, you need to adjust manually to match. 4) Check Device State “confirm your connected controller’s ethernet / PC ethernet are normal” a. check both ethernet led are ON or not. b. change one PC or change one controller to do testing. Question C: Connect to RTSys / ZDevelop Successfully, but Not Stable? “the problem may be interference / hardware” Answer C: 1) Your cable is not category 5e shielded cable. 2) Cable and motor power line are parallel or enter in same line slot. 3) The interchanger quality is not so good (change one). 4) IPC net-card is not stable (change one). Question D: IP are in Same Segment, but Can’t Connect, PING Can’t Conducted? Answer D: You set correct net IP, but the sub-net mask is wrong or you didn’t set it. You can set the sub-net mask as “255.255.255.0”. Question E: MODBUS_TCP Can’t Access Address? For Example: MOBUS_TCP can’t access the address, and you can’t connect to slave device successfully through the MODBUS TCP protocol. Answer E: 1) Make sure all ethernet led are normal. Normally, two should be ON (in real situation, one should be ON, one should shrink, but if the cable is good, two are ON at least). If abnormal, the problem is net-card or cable or interchanger. 2) PING the slave device. Make sure they are in same segment but not same IP (sub-net mask follows same rule). 3) If PING is OK, make sure parameters in MODBUSM_DES2 are correct, including current controller’s Eth port. If the slave port No. is not 502, please correct it. 4) Make sure slave device’s MODBUS device required functional codes are consistent with ours, our Zmotion supports 01/02/03/04/05/06/15/16, different functional codes correspond to different commands. 5) If above are OK, use MODBUS poll to test, if this is not valid, the problem is slave station designing or slave quality. Question F: MODBUS_TCP Breaks after 10s? For Example: After controller and slave station are connected through MODBUS_TCP, the communication is OK at first, then no communication. Answer F: If the former communication is good, and you confirmed the physical connection is no problem through PING. The problem may be your slave station will close the connection automatically when there is no communication. At this time, controller needs to check regularly, adding the “Heartbeat Hold” function.
15. Q&A of Communication Interface "EtherCAT" (1)
Question 1: Bus Opened Failed?
Refer to bus initialization routine, check the reason according to the error code.
Answer:
A.
Check Drive
See whether the driver alarms.
--Controller Side--
Open RTSys / ZDevelop software, click “controller – connect – view – axis parameter”, then in Axis Parameter window, see AXISSTATUS parameter, if it shows 8H, which means “drive communication error”, make sure the cable be good quality and the interface be plugged in well. If it shows 4H, which means “drive itself error”, like, encoder line is disconnected.
--Drive Side--
Check drive board, see the data code, then according to error code in drive manual, you can know the problem. For example, if the error code shows the problem is wiring / circuit, please also refer to drive manual, if non-circuit problem, power it down, then restart after a certain time.
B. Check Communication Period
See whether communication periods of controller and drive are consistent.
Please consult drive manufacturer or check the drive manual to obtain the allowed communication period range.
Then, see now controller’s communication period: open RTSys, and connect to your controller, sending online command “?SERVO_PERIOD” to check the period, the unit is us.
If checked period is in the range of drive allowed, no problem. if not, please modify controller’s bus period, but it also must be controller firmware allowed range: directly enter and send the command “SERVO_PERIOD = needed period” (for example, if you need 2MS, SERVO_PERIOD = 2000, because the unit is us), then disconnect controller’s power, wait a second, power it on.
C.
Check “DRIVE_PROFILE”
See whether drive_profile is set correctly, that is, the drive mode.
Note: generally, check it when there are “abort code” in the bus initialization process.
--Wrong drive_profile Configured (1)--
Step 1:
open RTSys, and connect to your controller.
Step 2:
open bus initialization program, check keyword “Drive_Profile”, make it as -1 (drive_profile = -1).
Step 3:
download into controller ROM.
Step 4:
power down the drive, and wait about 20 seconds, then repower on drive power supply.
Step 5:
download the initialization program again into ROM.
At this time, it will use preset PDO in drive automatically. If it is ON normally, the problem is configured drive_profile, then:
Step 6:
use ZTEST command in Basic manual to check preset PDO.
--Wrong drive_profile Configured (2)--
Step 1:
open RTSys, and connect to your controller.
Step 2:
enter the online command “drive_profile(axis No.)”, axis No. is which axis you want to check, starting from 0, under position mode, it will be 8 (please note some drives can select pulse or bus, so make sure it is bus mode for drive side, “how to switch”, ask drive engineers or see drive manual).
--common “abort code”--
--in controller side, EtherCAT error code list--
D. Check Added XML File.
When you connected unknown device, please check whether you added correct xml file. That is, when there appears “UNKNOWN Device” in the bus initialization process. Because the device didn’t match with your controller before, like this:
"Step 1: Generate ZML File"
Get the XML file of the “unknown device”, then open our Zmotion XML Parsing Tools, find “OPEN XML”, and select the XML file, then click “Export zml”, after that, add exported zml file into Ecat Init root directory.
Next, open our RTSys or ZDevelop, connect to your controller at first. Then open the Ecat Init file – file list, right click the menu – add to project, find generated ZML, and add it, download into ROM again.
"Step 2: Check ZML File"
Check whether the added ZML file is correct or not.
Still, open RTSys / ZDevelop, connect to your controller. Then, enter “?*ZML” in online output window at the bottom, check returned data. It will show all added ZML states, find the one you downloaded just now, if no, add failed. If there is, please see number after USED. 0 means it is not used. Below shows one example, the module No. is 13feh, and for these two, zml of version 4h was used by one module of current bus, of version 5h, not used.
"Step 3: Check the Device"
If the module has already matched, but it still appears “Unknown Device” while using, the problem maybe bus module, the reported manufacturer information is not correct.
At this time, you can power down, and restart the device, clear the error.
"Step 4: Update XML File"
Some drives’ xml is modified, now XML uses old xml.
You can update the xml, then generate again to do bus initialization. If the firmware has drive information and uses ZML at the same time, please refer to ZML.
E. Check Module Matching Situation
If the bus network that has splitters, and one unmatched module is connected to the port of one splitter. It will report the error “change to state fail”. Please check the module on the splitter one by one, find which one that is not matched before, then get corresponding XML file, and add it according to D.
F.
Check Device Numbers
In bus initialization program, check whether real detected devices are consistent with the set device numbers, specifically, check the one that judges “node_count”. Or you can see the error information.
Below attached EtherCAT Bus Initialization Program (with drive IO mapping).
G. Custom Configure PDO
For some drives, they can’t open the bus, usually reporting the error 6020. You can try to custom PDO. For the drive that uses ZML, if there is still error, please set NODE_PROFILE=-1.
Question 2: Bus Power Down?
"Situation 1: when completed initialization and enabled, after a certain of time, bus automatically powers down and cuts down the enable"
Possible Reason 1:
The problem is EtherCAT hardware.
How to Solve:
You can check Ethernet error tool in ZDevelop, after bus initialized, watch the ethernet error counts. Please see below showing.
If there are many 301H counts, please change the module.
Possible Reason 2:
There is electromagnetic Interference, and appears package lost.
Open RTSys / ZDevelop, if there is “Recv no pdo”, which means some are lost. If there is circuit error information on drive error memory, which means power down because of interference.
How to Solve:
Step 1: check drive grounding wiring, make sure it is grounded well.
Step 2: install magnetic ring on the drive side to reduce the interference.
Step 3: change the cable, which should be EtherCAT network specified cable that is with metal shieled head.
Step 4: move the drive out the chassis, that is, away from the circuit interference, then test it.
Step 5: check whether Ethercat cable is bound with power line (strong circuit) or whether they are in same wiring slot.
Step 6: if there are machines that belong to big power in the circuit, recommend to connect one isolator to power supply, then supply the power for the machine.
Possible Reason 3:
The problem is drive itself, then disconnect.
How to Check:
Please check drive history alarm record, see whether there are position error exceeding (when the motor is very soft), overcurrent (when it is with big load), etc. (some drives don’t record automatically, you can use the oscilloscope in the drive software to capture). Then, modify drive parameters.
"Situation 2: bus disconnects, powers down suddenly while moving"
Possible Reason:
The bus period is too short (usually 125US / 500US), when there is multi-module, if too much PDO data interacted, the period also should become big.
How to Check:
Step 1: open RTSys / ZDevelop software, connected your controller, and open bus node diagnosis tool, after bus initialized, check 308H data (package lost).
Step 2: enter “SERVO_PERIOD = needed period” and send out in the online output window to modify the bus period, the unit is US (if you need 2MS, it should be 2000).
Step 3: after that, disconnect controller power, wait seconds, power on again.
Question 3: Bus Node Sequence Error?
"Situation 1: drive node No. and arranged sequence is inconsistent"
Possible Reason:
wrong EtherCAT connected sequence
How to Check:
Step 1:
check the drive’s (the wrong one) bus IN and bus OUT, whether they are connected incorrectly, if yes, please adjust.
Step 2:
recommend use RTSys software, and in node list window, check the manufacturer ID and manufacturer name, easy to check the wiring sequence.
Note: please check drive manual, some drives have wiring rule.
"Situation 2: remove / add one drive, or connect one new IO module between drives, the original drive IO No. is incorrect"
Possible Reason:
in bus initialization, you used drive_io to map drive IO, after adding new drive between nodes, then original drive IO No. will move back as order.
How to Check:
Method 1:
put added drive node at the last (usually added IO module or drive are connected at the last of original bus network), or modify mapping starting address in the bus initialization program.
Method 2:
when you insert IO module in any position, you can make IO module itself address automatically configure (if you need to see whether there is axis on the node, using NODE_INFO command, if no axis, but there is IO, auto-set the address).
Method 3:
use custom mapping axis No. (freely bind with the axis No.), in this way, even you inserted one axis in the middle, the axis No. can’t be in the middle, then use drive_io to assign the address (making IO address relate to axis No. only).
"Situation 3: when the bus has splitter, one bus module that is connected to one channel of the splitter (add / reduce), axis No. sequence changes"
Possible Reason:
the splitter still belongs to serial network.
How to Check:
Method 1:
put connected drives or other modules at the last.
Method 2:
use array to store each splitter node’s axis No. while bus initializing, then specify the axis No. according to data in array.
Method 3:
use latest RTSys software to configure (recommended, it is flexible to configure axis and IO, below attached “how to configure bus in RTSys”).
Question 4: How to Add Data Dictionary by Custom PDO?
For Example: if drive_profile = -1, no needed data dictionary in default PDO, you want to add by yourself, how to do?
Answer:
According to below methods. And please do it after bus scanned and before bus opening.
Method 1:
check how default PDO is set, and which data dictionary are used.
Open RTSys / ZDevelop software, connect to your controller, and load the bus initialization program, set drive_profile as -1, then download into controller, online output “ztest” command:
Method 2:
use BASIC to write PDO modification function, then the function uses SDO_WRITE command to modify PDO data object. You can add when others are the same.
Method 3:
set drive_profile as -1.
Notes:
*PDO custom configuration, the last must be set as -1.
*1600h-160xh is RxPDO.
*1A00h-1A0xh is TxPDO.
*1c12h is used to set which of 1600h-160xh the RxPDO uses.
*1c13h is used to set which of 1A00h-1A0xh the TxPDO uses.
Method 4:
refer to below TwinCat description, download twincat software, then operate in the software, you can freely add.
Twincat Usage Breif Manual
Question 5: XML File Error? (How to Add XML File into Controller)
A. How to Get ZML File
Our controllers only can identify ZML file. Sometimes, drive manufacturers only provide XML file, then we need convert XML file of EtherCAT slave station into ZML file.
Step 1: use our XML Parsing Tools software to convert the XML file to ZML file.
Step 2: open it, select the XML file, then choose corresponding slave station model and type. For Device Type parameter, default is OK because the tool will automatically identify. Below takes the example of one controller controls 4 EtherCAT drives.
Step 3: after that, click “export ZML” (usually most of devices can be directly exported as ZML file.) For some special modules, you need to configure.
B. How to Download Config File for Host Computer
Step 1:
build one new folder, and prepare ready configured files “***.bas” and “***.zml”, then put them into the new folder.
Step 2:
open RTSys software, click File – New Project (the path, please select the created folder just now).
Step 3:
click empty area of “ProjectView”, then right-click “Add to Project”, that is, add two files in step 1 into this project.
Step 4:
set auto run task No. for the bas file, here single-click 192.168.0.11.bas file, you can set directly after right-clicking, usually the task No. is set as 0 (task No. means the controller’s thread No., if it is 0 -- thread 0 executes this .bas file).
Step 5:
export ZAR file, still in RTSys, click MakeZar file, set the file name, click save.
Step 6:
download the generated ZAR program package into the controller through host computer interface.
15. Q&A of Communication Interface "EtherCAT" (2)
Keep Going.
Question 1-5 of EtherCAT, please refer to “Q&A of Communication Interface “EtherCAT” (1)”.
Question 6: ZML File is OK?
Answer:
When you generated one ZML file from the XML file, or you obtained one ZML file, how to see whether it is valid, please refer to below steps.
Step 1:
open RTSys / ZDevelop software, connect to controller.
Step 2:
at the software bottom, there is one online output window, you can enter “?*ZML” and send it out, then see returned data (all added ZML states).
Step 3:
in returned data, find the needed one, if you didn’t see that, which means fail to add.
Step 4:
check the number after USED parameter, 0 means not used before (see below example: it shows 12feh module’s ZML states, it can be seen ver 4h and ver 5h are guided by arrows, and 4h uses one, ver 5 doesn’t use).
Question 7: EtherCAT IO Not Mapped? (How to Map Drive IO into Controller)
Answer:
Step 1:
Use DRIVE_PROFILE (Ecat Init Project) to Set Drive PDO List
If you want to watch drive IN, then there needs 0X60fd0020 in PDO list, such as, mode 4, mode 5, etc.
If you want to watch drive OUT, then there needs 0X60fe0020 in PDO list, such as, mode 5.
Step 2:
Use DRIVE_IO to Set Mapped Starting No. of Each Drive IO on Controller.
Note: IO address can’t be the same, and IO starting address should be multiples of 8.
Step 3:
if you also need map drive’s motion position limit into controller, please refer to below codes.
Question 8: No Drive IO State in Controller?
Answer:
Step 1:
open RTSys / ZDevelop, send the online command “?*EtherCAT”, then see whether the set drive_profile mode includes data dictionary 0X60fd (drive IN), 0X60fe (drive OUT).
Step 2:
in RTSys / ZDevelop, send the online command “ZTEST (30, 10, NodeId)”, then check whether drive’s PDO includes data dictionary 0X60fd (drive IN), 0X60fe (drive OUT). (NodeId means the node No. to be checked).
Step 3:
if above two steps are OK, then you can send the command “?drive_io(AxisId)” in online command window, then according to this axis’ starting IO No., make sure you watched IN No. is correct (AxisId menas the axis you want to check).
Step 4:
you also can use drive software to watch and observe, see if drive IO can watch related signals or can not.
Step 5:
if above four steps are OK, you can send the command “SDO” in online command window to read 0X60FD data, see the data when there is IN signal and when there is no IN signal, if data are the same, the problem is drive. If they are different, check error position, for example, the difference appears in position M, then IN(drive_io(AxisId)+M) can be watched normally.
Step 6:
different
DRIVE_PROFILE mode will map different numbers of drive IO. You can send online command “*DRIVE_IOCOUNT(AxisId)” in RTSys / ZDevelop to check mapped drive IO numbers. Then compare position M IN watched in step 4 with mapped drive IO numbers, if <, try to other DRIVE_PROFILE modes, like, mode 5 can map and watch 32 drive IOs.
Question 9: Configured XML File, Error 6020 when Bus Scanning by SLOT_SCAN? (Fail to Initialize EtherCAT / Unsupported Function in Bus Init – Error Code 6020)
Situation 1:
Solution:
this usually is caused by non-ethercat mode inside the drive, please set drive as bus mode, then do bus initialization to see whether it is normal.
Situation 2:
Solution:
Generally, the problem is sm initialization, that is, fail to convert the state from state 1 to 2.
When exporting ZML file from XML file, you can try to modify Minisize as the size same as DefaultSize, please note SM0 and SM1 must be modified together and their values are the same. If it is not OK, make it larger than original MinSize (≤), for example, now the MinSize is 0x22, you can try 0x64, 0x80, 0x32.
Situation 3:
Solution:
Generally, it fails to switch state to Safe Op or switch Safe Op to Op, specially, configured PDO is not supported by drive, you can set DRIVE_PROFILE mode as 0 / -1, then check the situation again.
For some drive models, when switching Safe Op to Op, it needs some delay.
Situation 4:
Solution:
Modify the DRIVE_PROFILE mode, 0/-1, then see the situation.
The drive may communicate the data by the serial port. For some drives, they only support one communication method, at this time, it needs to be switched. Before switching, please close serial communication, then convert to bus communication to do bus initialization.
Situation 5:
Solutions:
*when powers on, ECAT slave station is not ready well, but the controller already has done related operations of bus initialization, then slave alarms. at this time, please restart, and initialize again. You can add one delay 10S before controller bus initialization.
*one ECAT slave station is wrong, check which slave station appears the error when connecting, then replace one or update the drive.
*update slave station’s XML file and see the effect.
*increase PDO list length (controller receives the data in the length of 8 by default).
When exporting ZML file from XML file, you can try to modify Minisize as the size same as DefaultSize, please note SM0 and SM1 must be modified together and their values are the same. If it is not OK, make it larger than original MinSize (≤), for example, now the MinSize is 0x22, you can try 0x64, 0x80, 0x32.
Question 10: Error Code 6015 when Bus Scanning?
For Example:
Solutions:
When drive is scanning, returned respond error code is 6015.
Step 1: check the bus communication period
Drive firmware was updated, the communication period is not matched. Please confirm the drive communication period range, see whether they are consistent. For controller period, you can set in RTSys / ZDevelop, sending online command “?*MAX”.
Step 2: modify the bus communication period
Increase it by online command “SERVO_PERIOD=needed value”, then power down the controller and restart it.
17. Q&A of Communication Interface "RS485/RS232"
General Description of RS485 & RS232
A. General Wiring
*The wiring of RS232 is shown below, it needs to cross-wiring for sending and receiving signals, and it is recommended to use a double-female head cross line when connecting to the PC.
*The wiring of RS485 is also shown below, using the daisy chain topology (the star topology structure cannot be used). When the use environment is ideal and there are no many nodes, the branch structure also can be used.
*Please be sure to connect the public ends of each communication node to prevent the communication chip from burning out.
*Please use STP, especially in bad environments, and make sure the shielding layer is fully grounded.
B. Notes
Ø
For RS485 communication, don’t connect to terminal resistor, we designed it (not to connect), but sometimes it needs to do that for some RS485.
Ø
Communication speed and cable length in user manual can be referred, but please test according to real situation.
Ø
Supported communication speed is inversely proportional to cable length.
Ø
MorionRT7 Serial Port Configuration
a.
How to set serial port numbers:
b.
Set serial port No. that related to “port” of config file, specifically, find the config file in RT folder, then open it.
c.
Open the file, then modify “comport”, the left is port No., the right is corresponding com port.
For example: see the graphic, port No. relates to com0, port No. relates to com1, then save it, close the RT software, and open again. In this way, it can normally open, that is, serial port is ON successfully.
If it fails, like below. Please confirm the serial port No. to do communication in device manager.
d. Connect to RTSys / ZDevelop, and enter online command “?*port”, then you can check each port’s communication protocol type, and please confirm whether the port No. is com type.
e. Check serial port property, find the port setting, and you can modify the serial port parameters.
Questions & Answer
Question A: Fail to Connect to PC by RS232 (RS485)? No Connect to Controller by USB from 232?
Abnormal Situations:
(1) PC software can’t connect, ZDevelop / RTSys also can’t connect (by serial port).
(2)
PC software can connect, but ZDevelop / RTSys also can’t connect (by serial port).
Answers & Solutions:
(1)
Check Serial Port Configuration.
Using ?*SETCOM command, main parameters are baudrate, databit, stopbit, serial port No.
(2)
Check Other Configurations
Open device manager:
--check whether there is device--
--check whether the serial port No. is correct--
--check whether the drive is installed correctly--
--check whether USB interface’s drive is installed or check whether the drive is installed correctly if “convert 232 to usb”--
(3)
Check Wiring
--check whether RS232 serial cable interface corresponds to controller interface--
--check serial port cable, it should be cross cable—
(4)
Test by Serial Port Debug Tool
(5) If above are OK, the problem maybe the serial port itself, please change one serial port cable.
Question B: Fai to Read / Write Data of Serial Port?
Abnormal Situations:
(1) No communication reaction.
(2) Obtained value is not correct.
Answers & Solutions:
(1) Check the protocol mode (setcome): baud rate, data bit, stop bit, and serial port No.
(2)
Check the connection command “MODBUSM_DES”, the connect station No. must be correct.
(3) Check MODBU data operation commands, parameters must be correct, like, the address, especially the slave register address parameters.
(4) Check slave address, whether it is readable and writable.
(5) The timeout of the “SETCOM” command cannot be set to 0.
(6)
See whether the slave can work normally, you can use serial port debug tool.
(7) Check master and slave, and check the channel No.
(8)
Check data conversion format.
(9)
20ms delay can be added when switching the station No. / reading and writing by command.
(10) Serial port cable must be STP, if not, there may be interference.
(11) If there are multiple 485 devices, a 120-ohm resistor is required, which makes the voltage be stable.
(12) When using 485 to connect multiple slave stations, check the address, they can’t be conflict.
(13) If you now connected to the third party’s software (that also supports MDOBUS protocol), check the connection. If it is a direct serial port line connection, it is a serial port. If it is converted from a serial port to USB and then to a network port, it is TCP, then select the corresponding communication protocol.
Question C: Laser 485 Custom Communication Problems
For Example:
For laser 485 custom communication, there are multiple “putchar” commands, but the laser only can receive one or two commands.
Answer & Solution:
Add one delay in the middle.
Note: 485 communication is half-duplex mode, so it is necessary to make an appropriate delay when the 485 bus state switches before sending and receiving data. The specific method is to first set the control end to "1" in the data sending state, delay for about 1ms, and then send valid data. After a packet of data is sent, delay for another 1ms and then set the control end to "0". In this way, it will make the bus be a stable working process when the state switches. And this method is not only applicable to the 485 communication of the laser.
Question D: Controller MODBUS Master Reads Slave Register’s Value, then Judge. Judge Result ≠ Register Value?
Possible Reasons:
Abnormal communication, and wrong code logic.
Answers & Solutions:
(1) Check read functional code and address.
(2) Check the register, 16-bit or 32-bit.
(3) Check the analysis format, hexadecimal or decimal.
(4) Check data conversion format, like, high / low bit.
(5) The problem is code logic, it does the judgement when the communication not finished. You can add this code to wait a second: WAIT UNTIL MODBUSM_STATE<>1, which means it waits the message to end, 1s at most, the message timeout time. When it gets the message or time is out, changing as related value.
Question E: in Custom Communication, Wait Always when Getting Character by GET# / No Reaction when Writing by PRINT#?
For Example:
Use GET# to read character data, but it waits all the time.
Use PRINT# to write data, no reaction.
Answers & Solutions:
(1)
Check Serial Port Configuration.
Using ?*SETCOM command, main parameters are baudrate, databit, stopbit, serial port No.
(2)
Check Other Configurations
Open device manager:
--check whether there is device--
--check whether the serial port No. is correct--
--check whether the drive is installed correctly--
--check whether USB interface’s drive is installed or check whether the drive is installed correctly if “convert 232 to usb”--
(3)
Check Wiring
--check whether RS232 serial cable interface corresponds to controller interface--
--check serial port cable, it should be cross cable--
(4)
Test by Serial Port Debug Tool
(5)
For communication task, recommend to use separate task.
(6)
Add delay to see whether the message receiving timeout.
(7)
If above are OK, the problem maybe the serial port itself, please change one serial port cable.
Note:
For GET#, use syntax 3 and 4, it will return to read bytes. When using syntax 1 and 2, if no data read all the time, it will wait, the program maybe blocked.
18. Q&A of Basic Programming in RTSys / ZDevelop (1)
“Please Check “Read Me At First””
“There are Two Parts of Q&A of Basic Programming”
1.
Q & A of
“Register” Related in Basic Programming
Question:
Access Some System States Directly by MODBUS?
Answer:
It can access IO and axis parameter through special MODBUS register.
For our controllers:
A. MODBUS_BIT
MODBUS_BIT (10000) corresponds to IN
MODBUS_BIT (20000) corresponds to OUT
MODBUS_BIT (30000) corresponds to S register in PLC programming
(Note: it reads IO original state, INVERT_IN (invert signal) command is not valid).
B. MODBUS_IEEE
MODBUS_IEEE (10000) corresponds to axis DPOS
MODBUS_BIT (11000) corresponds to axis MPOS
MODBUS_BIT (12000) corresponds to axis VP_SPEED
C. “M” Register in PLC Programming
M8000: when in running state of PLC, M8000 common opened contact keeps OFF all the time, which can be used as “input condition” to drive the program and can show controller’s running state
M8001: when in running state of PLC, M8001 common opened contact keeps “break” all the time
M8002: when the PLC is stopped and running, M8002 is only turned on once in the first scan cycle, which is generally used for initializing parameters and resetting programs, or batch assignment.
M8003: when the PLC is stopped and running, M8003 disconnects the first scan cycle and then returns to the normally closed state.
M8011: the cycle time is 10 milliseconds. Within the 10 milliseconds, the contacts of M8011 are connected for 5MS and disconnected for 5 milliseconds, and the cycle is repeated continuously.
M8012: the cycle time is 100 milliseconds. Within the 100 milliseconds, the contacts of M8011 are connected for 50MS and disconnected for 50 milliseconds, and the cycle is repeated continuously.
M8013: the cycle time is 1 second. Within the 1 second, the contacts of M8011 are connected for 500MS and disconnected for 500 milliseconds, and the cycle is repeated continuously.
M8014: the cycle time is 1 minute. During this 1 minute, the contacts of M8011 are connected for 30 seconds and disconnected for 30 seconds, and the cycle repeats continuously.
M8020: when the result of addition and subtraction is 0, M8020 will be set, otherwise it will be in reset state.
M8021: when the result of subtraction is < the maximum negative value, the borrow flag will be activated.
M8022: when the result of addition is > the maximum positive value, the carry flag will be activated.
M8023: decimal point flag.
M8100-M8199: IDLE flag of axis 0-99
M8200-M8299: BUFFER remaining flag of axis 0-99
M10000~: IN(0) corresponds to M10000, IN(1) corresponds to M10001, and so on.
M20000~: OP(0) corresponds to M20000, OP(1) corresponds to M20001, and so on.
D8001: Version
D8004: Error
D8010: Scan time
D8011: Minimum scan time
D8012: Maximum scan time
D8013: Second
D8014: Minute
D8015: Hour
D8016: Day
D8017: Month
D8018: Year
D8019: Week
D10000-D10198: DPOS, floating point mode, each axis occupies 1 MOBBUS_IEEE.
D11000-D11198: MPOS, floating point mode, each axis occupies 1 MOBBUS_IEEE.
D12000-D12198: VPSPEED, floating point mode, each axis occupies 1 MOBBUS_IEEE.
D13000-D13128: AOUT, analog output, each channel occupies 1 MOBBUS_REG.
D14000-D14256: AIN, analog input, each channel occupies 1 MOBBUS_REG.
Question:
Power-Down Storage Function?
Answer:
VR data can be saved when power-off. That is, you can read and write repeatedly. But the register space is limited.
If your data is very large, you can write into FLASH. They can be read out when power on.
Note: don’t read and write into FLASH frequently, because the limit is 100000 times.
2.
Q & A of
“Motion Command” Related in Basic Programming
A. Q & A of Single-Axis
Motion Commands
Question:
Motion Still after CANCEL?
Answer:
--From Planning Aspect--
a. the default mode of CANCEL is to cancel the current motion but not the motion in the buffer. Use CANCEL(2) to stop immediately.
b. check whether the motion command is still being issued after CANCEL(2).
c. check whether the acceleration and deceleration are set. There is no absolute immediate stop. By setting the FASTDEC parameter to a large value, it can be stopped quickly when there is a limit, alarm or RAPIDSTOP(2).
d. the emergency stop speed is too low, the same as 3.
e. the reserved braking distance is too small, for example, the length of the limit sensor is too short, resulting in a short limit signal time.
f. the axis No. of CANCEL must be correct. Do not use the CANCEL command only for the interpolation slave axis.
g. for electronic gear synchronous motion such as handwheel, if the master axis and slave axis do not stop immediately after CANCEL, pay attention to whether Clutch_Rate is 0 and the slave axis speed/acceleration ratio is small.
--From Execution Aspect--
a. please set drive inner S curve as 0, use controller to plan S curve.
b. drive rigid parameter.
Question:
While Calling DATUM21, Move to MPOS = Motion 0?
Answer:
If PDO = -1 used, you didn’t add 6060 in drive configuration, that is, no homing mode is configured, then, cause abnormal homing.
In drive homing mode, set current position as 0.
Question:
In DATUM (13) Mode, but Home Inversely?
Answer:
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 negative homing modes are called.
e. the origin signal is triggered by mistake.
Question:
In DATUM (3) Mode, Not Stop when Meets Origin?
For Example:
the axis is between the origin and the negative limit. When driving an axis with homing mode 3, there will be occasional situations -- the axis does not return when it hits the origin and keeps running in the positive direction. When this happens, stop the axis and then drive the axis to the negative direction again, it will keep hitting the machine in the positive direction.
Solutions:
Step 1: confirm the direction of the motor through “Manual” motion.
Step 2: capture the waveform through the oscilloscope to confirm that 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.
Step 3: check the control program logic, close the host computer software, write a script with RTSys / ZDevelop, reproduce the host control logic, and repeat the movement. If the same problem occurs, proceed to the next step.
Step 4: check the hardware wiring to see if it uses twisted pair shielded wires. After replacing, test the wiring separately.
Step 5: check whether it is a firmware problem or an old controller problem. You can try to change one controller or update the firmware. If this problem still occurs, see next step.
Step 6: check the basic parameter settings, modify some, like, ACCEL, DECEL, homing parameter, etc. If this problem still occurs, see next step.
Step 7: check whether it is a driver problem, which may be a stepper motor execution problem.
B. Q & A of
Multi-Axis Motion Commands
Question:
Not Execute in Full Circle Interpolation Sometimes?
Answer:
a. full circle interpolation must use relative arc interpolation MOVECIRC, not absolute arc or MOVECIRC2.
b. whether the controller supports interpolation instructions, use the online command [?*max] to check the last line of information, which indicates the functions supported by the controller.
c. when drawing a circle with the center of the circle, the trajectory parameters of the circle are not set reasonably, and it is not a full circle in the mathematical and geometric sense.
d. an abnormal stop is encountered during the circle overshoot (such as an axis encountering a soft limit during the arc process).
Question:
Use Sub-Axis Speed to Hold in Interpolation?
For Example:
when the base (X, Y, Z) axes perform multi-segment interpolation motion, the SPEED of the X axis is not changed during the motion, but the speed of the X axis is sometimes fast and sometimes slow. How can keep the X axis running at the same speed?
Answer:
a. during the interpolation, the vector speed is constant, and the speed of each axis is automatically planned according to the movement distance, so the speed of each axis will change. And you can make axis X speed hold by the command of INTERP_FACTOR=1,0,0. But please note that INTERP_FACTOR must be restored to 1 during single-axis movement.
b. for linear movement, you can try to switch MOVE_PTP.
c. if you do not need to reach the target position at the same time, you can use YZ interpolation, and use MOVE_ASYNMOVE for X during the interpolation process.
Question:
Already Set Continuous Interpolation, Not Invalid?
Answer:
a. check whether Merge is set on the first BASE axis of the interpolation motion.
b. whether there is a delay in the motion that causes discontinuity of the buffer motion, and the delay will interrupt the continuity of the interpolation motion.
c. if the motion instruction is a small line segment, check whether the motion time of the small line segment is too short, resulting in the PC sending the motion slower than the running speed.
d. whether there is SP motion / trajectory look ahead / corner deceleration / other operations that limit the speed, if yes, it will affect the interpolation speed.
e. confirm whether the current controller supports the continuous interpolation function.
f. if there added many commands like MOVE_DELAY / MOVE_WAIT between multiple interpolations, it will also cause deceleration.
g. you switched the main axis, and the continuous interpolation MERGE program is closed.
Question:
Run BASIC Code in Buffer, Execute Axis Stop Command Failed in Motion? (Axis Stop Command is Invalid)
Possible Reason:
The controller has fewer motion buffers, but there are too many motion commands downloaded at one time.
The motion buffer space for each axis is limited. When too many motion instructions are scanned and put into the motion buffer, the multi-level motion buffers are all filled. If the program continues to scan more motion instructions, the program will be blocked until the motion instructions are completed and exited in sequence. When the motion buffer has empty space, then motion command will continue to enter the motion buffer. The axis stop command can only cancel the current motion and buffered motion. The previously blocked motion instruction is written into the buffer just because the motion in the motion buffer is canceled and there is an empty space in the motion buffer, so the axis stop command cannot stop the axis.
Solutions:
a. use the motion pause command to stop the axis.
b. input the axis stop command quickly and multiple times.
c. when Basic is in an infinite loop, stop the task directly by using the halt or stoptask command.
d. for host computer: stop the host computer thread first, then send the stop command.
C.
Q & A of
Synchronous Motion Commands
Question:
CAMBOX Command Used, Motion Appears Deviation?
Answers:
a. the total time of the current axis movement is determined by the movement distance and axis speed of the reference axis, and the speed is automatically matched.
b. the TABLE data needs to be set manually. The first data of the TABLE is the guide point, and it is recommended to be set to 0. Because the data of the cam is the relative distance which relates to the starting point.
c. make sure that the distance parameter *units transmitted by the instruction is an integer pulse. If there is floating number, it will cause slight errors.
d. the same segment of movement is divided into multiple CAMBOX. The position where the cam starts needs to be processed to ensure that it is the starting position of the segment.
e. insufficient subdivision of the TABLE data will cause deformation of the planned trajectory.
f. for long cam tables, do not modify the position value in the TABLE during movement.
Question:
In CONNECT Synchronous Motion, Pulse Lost?
For Example: using CONNECT command to do synchronization, pulse is lost. / when main axis speed is different a lot from slave axis speed, and CLUTCH_RATE is 0, it also will be lost.
Solutions:
a. when the pulse equivalent is a floating point, synchronization also loses precision.
b. you can consider using the new ADDAX mode to set the ratio to solve the problem.
D.
Q & A of
Position Related Commands
Question:
Deviation Between Encoder MPOS & DPOS?
(MPOS: encoder feedback position, DPOS: demanding position, if there is deviation, usually because lag. Lag: after the command is issued by the controller, there is a certain delay for the driver to respond and execute the action. This delay includes the processing time after the driver receives the signal and the time required to execute the action. Position lag may affect the synchronization and accuracy of mechanical movement, thereby affecting the quality and efficiency of the entire processing process.)
Possible Reason 1: the lag appears when servo drive is used.
Solutions:
a.
the parameter “the position loop” is critical to reducing position lag, that is, you can adjust the proportional gain and integral time constant of the position loop to optimize the servo drive’s response performance, then, position lag can be reduced and system dynamic performance can be improved. In addition, the feedforward gain of the position loop can also improve the high-speed response, but please note the condition is “no oscillation”. And for some servos, they can directly adjust the rigidity level to do adaptive gain, or can automatically identify the inertia to adjust gain.
b. the speed does not match the ratio of acceleration and deceleration, and it should be debugged according to the actual machine.
Possible Reason 2: the lag appears when stepper drive is used.
Solutions:
a. improper initial speed and acceleration settings: if the initial speed is too high / the acceleration is too large, the stepper motor may lose steps or stall, causing position lag.
b. the control signal line may be affected by other signals of the device, or the driver may be affected by interference signals. Then these interferences may cause the stepper motor to malfunction, causing position lag.
c. if the torque of the selected stepper motor is too small, it may lose steps during acceleration or high-speed operation, causing position lag.
d. the ratio of speed to acceleration and deceleration does not match, and it should be debugged according to the actual machine.
18. Q&A of Basic Programming in RTSys / ZDevelop (2)
“Please Check “Read Me At First””
“There are Two Parts of Q&A of Basic Programming”
Below Information, Please Refer to PART ONE.
1.
Q & A of “Register” Related in Basic Programming
2.
Q & A of “Motion Command” Related in Basic Programming
--Single-Axis Motion Command--
--Multi-Axis Motion Command--
--Synchronous Motion Command--
--Position Related Motion Command--
3.
PART TWO…
3. Q & A of
“Axis Parameter & Axis State” Commands in Basic Programming
Question:
No Way to Set ATYPE (axis type) / “Fail” when Set ATYPE?
Answer:
Step 1: check whether axis physical address is supported.
Step 2: for bus axis (EtherCAT / Rtex), it needs to do bus initialization. DRIVE_PROFILE mode should be set correctly. For example, if you need torque mode, ATYPE is 67, then please set DRIVE_PROFILE mode as the one that is with CST mode (17 / 18 / 30 / 31).
Step 3: check how many the real axes your controller supports, that is, the axis controls the motor motion. You can check by “controller state” – RealAxises value in RTSys software.
Step 4: check whether you use correct axis mapping syntax. Because different axes’ mapping syntaxes are different, like, bus axis mapping, local pulse axis remapping, axis mapping of MotionRT7 sub-card, etc. For details, please refer to BASIC Programming Manual – AXIS_ADDRESS command.
4. Q & A of
“Program Structure & Process” Commands in Basic Programming
Question:
Array Exceeds?
Possible Reason:
Since the starting index is 0 and the end index is the array length minus 1, the program reports an out-of-bounds error.
dim array (10) ’the array space is 10, index is 0-9, if >9, it will report “exceed the array size”
Answer:
Step 1: before using, make sure the statement array is at the beginning of the program.
Step 2: check the value of the array index. For example, if the array size is set to 10, the array index can only be set to 0 to 9.
Step 3: check whether it exceeds the maximum length supported by the controller.
5. Q & A of
“IN & OUT” Commands in Basic Programming
No Voltage Output by AOUT?
For Example:
you assigned voltage value by AOUT, but no real output.
Answer:
Step 1: check if the IO power supply is connected.
Step 2: check if the wiring is connected correctly.
Step 3: check if the analog power supply is separated from the controller power supply.
Step 4: when using the analog sub-module of the EtherCAT bus expansion module, the analog range is not set or does not correspond, then please use the SDO_WRITE command to write the data dictionary.
Step 5: if there are multiple consecutive AOUT commands in the program, “delay” is needed. Due to the problem of the refresh cycle, only the previous AOUT instruction is valid, so it is recommended to add a delay of more than 30ms between two AOUT commands.
6. Q & A of
“Errors” in Basic Programming
For more other error codes, please refer to “Q&A 1 Error Code List”.
Question:
1000H Error?
Possible Reason:
SPEED*UNITS > MAX_SPEED
Solutions:
a.
increase MAX_SPEED appropriately, but not more than max pulse frequency in user manual.
b. reduce the driver subdivision.
c.
control the running speed and acceleration.
d.
the pulse amount UNITS is set too large.
e.
adjust the motor gear ratio command. It is not recommended to modify the motor gear ratio on the controller, but modify the motor gear ratio on the driver.
f.
check whether there is superposition, and the superposition axis exceeds MAX_SPEED.
Question:
100000H Error?
Possible Reason:
--instant speed > MAX_SPEED, may be caused by MOVE_PT command--
--superposition speed loss, that is, main axis error caused by superposition axis--
Solutions:
You can set correct speed, make max instant speed not exceed MAX_SPEED.
Not recommend to modify motor gear ratio.
Question:
6099 Reports 6090031h?
Possible Reason:
This means the parameter value is too high. Because the drive unit is circle, for controller speed, it needs to “* pulse amount (UNITS)”. It will cause the speed value transferred by controller reports 6090031h, 6099 is the drive homing speed.
Solution:
Before homing, modify pulse amount UNITS as 1. Then, open drive homing.
Question:
Error Code 6015 when Bus Scanning in RTSys / ZDevelop?
For Example:
Solutions:
Step 1: check the bus communication period
Drive firmware was updated, the communication period is not matched. Please confirm the drive communication period range, see whether they are consistent. For controller period, you can set in RTSys / ZDevelop, sending online command “?*MAX”.
Step 2: modify the bus communication period
Increase it by online command “SERVO_PERIOD=needed value”, then power down the controller and restart it.
Step 3: select correct drive communication method
Some drives’ control communication methods are pulse control and bus control. And some needs to manually set the method. You can use drive debugging software or drive board to set as bus control.
Step 4: drive firmware problem, you can contact with drive manufacturer.
Question:
Configured XML File, Error 6020 when Bus Scanning by SLOT_SCAN? (Fail to Initialize EtherCAT / Unsupported Function in Bus Init – Error Code 6020)
Situation 1:
Solution:
This usually is caused by non-ethercat mode inside the drive, please set drive as bus mode, then do bus initialization to see whether it is normal.
Situation 2:
Solution:
Generally, the problem is sm initialization, that is, fail to convert the state from state 1 to 2.
When exporting ZML file from XML file, you can try to modify Minisize as the size same as DefaultSize, please note SM0 and SM1 must be modified together and their values are the same. If it is not OK, make it larger than original MinSize (≤), for example, now the MinSize is 0x22, you can try 0x64, 0x80, 0x32.
Situation 3:
Solution:
Generally, it fails to switch state to Safe Op or switch Safe Op to Op, specially, configured PDO is not supported by drive, you can set DRIVE_PROFILE mode as 0 / -1, then check the situation again.
For some drive models, when switching Safe Op to Op, it needs some delay.
Situation 4:
Solution:
Modify the DRIVE_PROFILE mode, 0/-1, then see the situation.
The drive may communicate the data by the serial port. For some drives, they only support one communication method, at this time, it needs to be switched. Before switching, please close serial communication, then convert to bus communication to do bus initialization.
Situation 5:
Solutions:
*when powers on, ECAT slave station is not ready well, but the controller already has done related operations of bus initialization, then slave alarms. at this time, please restart, and initialize again. You can add one delay 10S before controller bus initialization.
*one ECAT slave station is wrong, check which slave station appears the error when connecting, then replace one or update the drive.
*update slave station’s XML file and see the effect.
*increase PDO list length (controller receives the data in the length of 8 by default).
When exporting ZML file from XML file, you can try to modify Minisize as the size same as DefaultSize, please note SM0 and SM1 must be modified together and their values are the same. If it is not OK, make it larger than original MinSize (≤), for example, now the MinSize is 0x22, you can try 0x64, 0x80, 0x32.
Question:
Host Computer 2033 Error?
For Example:
your connection handle is normal, origin command’s parameters also can use digit directly, but it reports error 2033, 2033 means unknown name in the expression (undefined variables / arrays).
Solution:
Step 1: check library file, you can run the verified homing routine, see whether there is error.
Step 2: make sure the controller be good, you can enter origin command in “output” window, see whether homing is normal.
Step 3: check controller state, then view controller firmware version, update the firmware as latest, see whether it runs normally.
7. Q & A of
“Storage” in Basic Programming
FLASH Usage Notes
FLASH(-1) command only save default 320000 TABLE registers. If you used TSIZE command to make TABLE register numbers exceed 320000, the exceeding part will not saved by TBALE register. If you still want to use TSIZE to modify TABLE space, recommend you use FLASH_WRITE and FLASH_READ to manual control, not use FLASHVR command.