Local register LV: a local workable register in a function. every function, each of its running real case uses different data, and has 8 LV, the number is 0-7. This register is a 32-bit floating-point. It is similar to ZBASIC’s LOCAL, when BASIC calls ZPLC, called parameters are automatically passed into the LV register. Meanwhile, LV memory can be also as the modifier register.
Program function introduction:
When power is on, start two subtasks in BASIC program, and separately call PLC’s two subfunctions, SUB_CAL and SUB_CAL1. They will be the return value by passing the local register LV1, but because LV is the local register, means each function has its own 8 LV registers. Therefore, when X0 is switched on, a and b, the two variables are assigned the value of 3 and 4 respectively. Also, due to the LV local register can be as the modifier register, so the value of DT2 is 3, the value of DT3 is 4.
It can be determined according to the ID of modules, and ID is determined by the combination value of DIP switches, similar to the group of 8421.
For all DIP switches OFF of ZIO1608, ID0 - input 16-31. Output 16-23
The first DIP switch is ON, and other dip switches are OFF. ID1 - Input 32-47. Output 32-39.
DIP1, 2 are ON, others are OFF. ID3 –Input 64 – 79, Output 64-71.
And so on.
1. Transfer the motion commands, axes no any reaction.
Situation1: Limit bit or alarm input, or level configuration for limit alarm is incorrect.
The special signal default is commonly closed, but some domestic production is often opened. Set INVERT_IN to flip the corresponding opening over.
Situation2: The atype of the axis is incorrectly configured.
2. Indicate an unknown label.
Situation1: There is no statement on variable before use.
Situation2: Character typing errors in labels.
3. After using “MPOS=” assignment for modifying coordinates, there are errors in coordinates.
DPOS is the virtual location, MPOS is the feedback location, so for virtual axes, MPOS = DPOS.
When modifying MPOS, if the movement doesn’t stop completely, there will be a factor of uncertainty.
So can use “DPOS=” assignment for modifying coordinates, but only need stop the virtual axis.
4. RUN fails to start multi-task.
Take notice: RUN STOP + BAS file name.
RUNTASK + SUB procedure name.
(These two forms are right.)
5. There is something wrong with the value calculated by ticks.
Ticks is used to subtract the lose count.
6. Approaches to achieve continuous interpolation.
Set the parameter “merge=on”. If corner deceleration and speed limitation of small round are required, more parameters should be set.
merge = on 'Start continuous interpolation.
CORNER_MODE = 2 'Start corner deceleration.
DECEL_ANGLE = 15 * (PI/180) 'Start decelerating at an angle of 15 degrees.
STOP_ANGLE = 45 * (PI/180) 'Down the angle of the minimal speed 45 degrees.
FULL_SP_RADIUS = 100 'the small circle.
●How to know the current moving range of continuous interpolation?
Judgement: MOVE_MARK and MOVE_CURMARK.
●How to set the rate-limiting for each segment?
Use MOVESP, some kinds commands. Simultaneously, set a few parameters, such as, FORCE_SPEED, ENDMOVE_SPEED.
7. Approaches to achieve point to point motion.
Actually there is no exact corresponding instruction, but can use MOVE directly. (Operate one axis at a time.)
8. Can VMOVE set multiple axes?
No, multiple commands are required. Like this:
9. How to set the parameters of interpolation motion?
The main axis is the first axis of BASE, and that’s the parameters of the interpolation.
move(1000,122) 'The parameter of Axis 1 is the interpolation parameter.
move(1000,122) axis(0) 'The parameter of Axis 0 is the interpolation parameter.
10. Why the interrupt function is useless?
The interrupt switch is closed by default, you can check whether the system parameters of the interrupt switch are enabled.
11. Can the input jump as the interrupt function?
No. Theoretically, the number of inputs exist thousands, so it can’t achieve so many interrupt functions.
12. How to access the variables defined by controller from the PC?
The best is, the variables, arrays and others are defined as global variables, then be modifed and read through the execute function.
13. Whether all commands can be sent directly from the PC?
Some commands are restricted to be sent from the PC, such as, WALT. That’s because the PC command channel will be blocked. Also, it is impossible to define variable arrays through PC commands.
14. How to stop the motion immediately?
There is no absolute stop immediately, but by setting the fastdel parameter as a large value, it can stop quickly in the limits or rapidstop. Move again, you’d better add the judgement, wait idle, then rapidstop ignores the Base, and all axes are stopped.
15. How to implement handwheel?
Use connect instruction to implement it, see handwheel routines,
16. Forward and Reverse can’t change the motion direction immediately?
Forward and Reverse are used with a buffer each time, so it’s better to use the Cancel and then operate a new motion instruction.
Another way, use vmove. Vmove can judge former insructions automatically, if it is the vmove itself, the direction will be changed directly. Therefore, vmove is the best choice to achieve the jog kinds of functions.
17. How to access some system states directly through Modbus?
The special MODBUS register can access IO, location and so on.
Bit 10000: start to input. Bit 20000: start to output.
Each axis of the word register occupies two words in float form:
#define MODBUS_REGNUM_DPOS_X 10000
#define MODBUS_REGNUM_MPOS_X 11000
#define MODBUS_REGNUM_VP_SPEED_X 12000
18. After Cancel, the motion is operating.
The default of Cancel just cancel the current motion, not the buffer motion, with the parameter2, cancel(2), all will be canceled.
19. Can the print insrtuction be controlled, so no need to delete the code when printing isn’t required?
Use TRACE WARN ERROR print, assigning different values to ERRSWICH, it can control the state of output for corresponding instruction.
20. Does ZMC controller support different pulse equivalent as the circular interpolation?
Yes, it does.
21. Forcespeed has been set, but the actual motion speed hasn’t reached the forcespeed.
The speed parameter limits the interpolation movement, and it’s dynamic. Just need to change the speed.
22. How to save data when power off?
The data of VR can be saved in power down, for others, can be written in flash, and be read when the electricity.
23. The variable has been defined, but it can not be accessed by another file?
Because there are three types of variables, global, file and local. And the default is file variable, only can be accessed by the current file. Please modify into global variable, this way, all things can be accessed.
24. Sub has been defined, but can’t be called by another file?
There are two types of sub, global and file. And the default is file sub, only can be accessed by the current file. Please modify into global variable, this way, all things can be accessed.
25. There are errors when the program is running, how to find them?
Don’t restart. Use ZDevelop tool to connect(select the way to attach the current program), then can view the program running internal state and error location.
Or input “ ?*task” in the command bar, can also refer the reason and error location.
26. How to close the internal WARN output?
Set the system parameter, ERRSWITCH<2.
27. How to deal with the Print output is not neatly arranged?
You can use TOSTR format output.
28. How long the modified Offpos will be taken effect?
No need waiting too long, generally, it takes effect immediately.
1. error: 2032:Invalid char is met. What the reason of this?
Generally, because there appears Chinese character, can check whether the quotation marks and other symbols are in Chinese.
2. If wants to automatically support multiple models of controllers, how to operate in the program?
The controller basic model can be attained in CONTROL parameter. And the specification of flash can be attained in FLASH_SECTES FLASH_SECTSI.
3. The network connection is down.
Check the IP address of the PC, they should be in the same network segment.
Check the IP address of the controller, can view by connecting the serial port.
Check the firewall settings on the PC.
4. PC can’t connect Internet and the controller simultaneously.
Method1: Change the IP address of the controller to the same network segment as the PC and gateway.
Method2: Modify the subnet mask of the PC so that the gateway and controller IP addresses are on the same network segment. Such as, 255.255.128.0
5. After IDLE, MPOS still changes.
After IDLE, DPOS doesn’t change any more, but MPOS is not necessarily stable, you can delay or wait for the MPOS to reach the end position.
6. CAMBOX motion isn’t triggered successfully by DEFPOS sometimes.
Don’t change back after modifying DEFPOS, it should delay one period and make sure CAMBOX motion has detected initial conditions. If it starts immediately, there is no need a location trigger.
7. How a nonautomatic run file can be done one time by itself?
Input “run filename” in the command line, the name is for required file, but if the file has been changed, all needs to be downloaded again.
8. It rushes over the limits.
Improve FASTDEC Settings or speed up the sensing range of the limit signal.
9. There is always a deceleration at the boundary when using the motion SP instruction.
Check two parameters, STARTMOVE_SPEED and ENDMOVE_SPEED, the two and FORCE_SPEED, same, they are brought with buffer in SP instruction.
10. MERGE has been set, but not sequential.
Check if MERGE sets in the first BASE axis of the MOVESO command.
11. Sensor signal pulsation, one signal affected by another signal.
Check if the power supply of the IO sensor and the IO power of controller are different. Connect the bottom line of the TWO powers.
12. When do homing, there appears find in opposite direction in a slow speed attaching at original position.
If it is the servo motor, exceeding the origin, the controller will give an extra protection. Essentially, the controller should stop when testing the origin, but it couldn’t test the origin after stop completely. So the phenomenon is emerged because the axis is mistakenly thought to have passed the origin induction range.
Solution: LSPEED is set as 0 when returning to origin, producing a certain deceleration distance.
13. WHILE NOT 1 can’t jump out the loop.
NOT of ZBASIC is flipped as per, NOT 1 is -2, so it’s not still FALSE. Use either WHILE FALSE or WHILE NOT TRUE, where TRUE has a value of -1 and the result of flipping -1 equals 0.