Jump to content
OMRON Forums

MoMo

Omron
  • Posts

    27
  • Joined

  • Last visited

  • Days Won

    5

MoMo last won the day on April 26

MoMo had the most liked content!

About MoMo

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

MoMo's Achievements

Apprentice

Apprentice (3/14)

  • Dedicated Rare
  • Reacting Well Rare
  • Collaborator Rare
  • One Month Later
  • First Post

Recent Badges

8

Reputation

  1. According to the Power PMAC Software Manual, there is no vcross in the scripting language, so its use in the scripting language environment is not supported.
  2. PMAC actually only controls the position of the motor (closed-loop control). When you plan a position-time motion curve, the velocity-time curve is also determined. Because speed is the derivative of position, if you just want to change the speed without updating the program, you can use TimeBase. No, because PMAC is a closed-loop control that controls the motor position. If you use CST or CSV mode, PMAC's PID algorithm will correct the offset you apply. Give a simple example: If you are a boiler worker, you have a supervisor who monitors the boiler temperature and tells you how much coal to add. You want to get off work early and speed up adding coal to the boiler. At this time, your supervisor finds that the boiler temperature rises too fast and will start to order you to reduce the coal addition. If you do not obey your supervisor's orders, your supervisor will think that there is a risk of the boiler losing control and will open the boiler's pressure relief valve and shut down the boiler directly (PMAC kill the motor). This is similar to if you have two bosses in the company and give you two opposite instructions, how should you execute them? I suggest you tell us your project requirements, because your idea is basically impossible to implement now, and this is not a limitation brought by PMAC.
  3. I think DaveBarnett's method is actually a good method. You can ensure precise synchronization of the two coordinate systems through TimeBase and achieve precise delay through PLC0. First set Coord[x].DesTimeBase=0 in the two coordinate systems, and then run the running program. At this time, the motor will remain stationary. Then first restore the Coord[x].DesTimeBase of the first coordinate system to Sys.ServoPeriod, and start the countdown, and then restore the Coord[x].DesTimeBase of the second coordinate system.
  4. First you must clarify the following: ①No matter what mode your motor uses in PMAC, CSP, CSV or CST, PMAC will eventually change it to position control mode. ②When you use a motion program, the controller plans a position-time curve, so its speed-time curve is also determined. ③If you want to simply offset the motion speed through DacBias, this is only possible when the motor is in open loop mode, which for your current situation means that you cannot control the position. ④The easiest way for your current situation is to use the TimeBase or Coord[].SegOverride mentioned above to change the speed. The premise of using Coord[].SegOverride is that Coord[].SegMoveTime is not 0
  5. I think the IDE cannot run on WinXP because the IDE was developed and tested without considering WinXP at all. Even if you install it successfully, there is no guarantee that it will work properly.
  6. Thank you very much for your information
  7. I use the following RS232 to Ethernet module. About $30 /*For more information see notes.txt in the Documentation folder */ #include <gplib.h> #define _PPScriptMode_ // for enum mode, replace this with #define _EnumMode_ #include "../../Include/pp_proj.h" #include <gplib.h> #include <stdio.h> #include <sys/socket.h> #include <arpa/inet.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <netinet/in.h> #define PORT_NUM 9739 //端口号 int main(void) { InitLibrary(); // Required for accessing Power PMAC library int server_sockfd = -1; int server_len = 0; int client_len = 0; char Cmd[256],Recv[256]; int result = 0; int i,length_of_Cmd_Recv; struct sockaddr_in server_addr; struct sockaddr_in client_addr; // 创建数据报套接字 server_sockfd = socket(AF_INET, SOCK_DGRAM, 0); // 设置监听的端口、IP server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(PORT_NUM); server_len = sizeof(server_addr); client_addr.sin_addr.s_addr = htonl(INADDR_ANY); client_addr.sin_port = htons(0); client_len = sizeof(client_addr); // 绑定(命名)套接字 bind(server_sockfd, (struct sockaddr *)&server_addr, server_len); length_of_Cmd_Recv=sizeof(Cmd); for(i=0;i<256;i++) { Cmd[i]=0; Recv[i]=0; } while (1) { // 接收数据,用 client_addr 来储存数据来源程序的IP端口 result = recvfrom(server_sockfd, &Cmd, length_of_Cmd_Recv, 0,(struct sockaddr *)&client_addr, &client_len); result = GetResponse(&Cmd,&Recv,length_of_Cmd_Recv,0); //发送处理后的数据 sendto(server_sockfd, &Recv, length_of_Cmd_Recv, 0, (struct sockaddr *)&client_addr, client_len); //清空缓存 for(i=0;i<256;i++) { Cmd[i]=0; Recv[i]=0; } } // 关闭套接字 close(server_sockfd); CloseLibrary(); return 0; } The above is the Socket communication code of PPMAC. I recommend using UDP communication because UDP communication is closer to the serial port and is carried out in the form of messages.
  8. According to my experience, if there are two lines of programs at the same position, the above error will occur. You can add line labels to the program so that you can know the approximate location of the error in the program.
  9. I suggest you upgrade your IDE to 4.6.3.6 because the new version of IDE fixes many bugs. The following is the download link https://www.ia.omron.com/product/tool/pmac-software/
  10. Run the IDE in administrator mode? Or turn off anti-virus software?
  11. I suggest you upgrade your IDE to 4.6.3.6 because the new version of IDE fixes many bugs. The following is the download link https://www.ia.omron.com/product/tool/pmac-software/
  12. You can use the script's preprocessing instructions to implement different settings. The example is as follows: Then you can directly modify the predefinition in us'rflash via the sed command in Linux, such as the “_Machine_1” in the example above. Use the instructions below to switch the _Machine_1 to _Machine_2.After that, all you have to do is send $$$ and you'll be able to use the new settings system mount -o remount,rw /opt system sed -i 's/#define _Machine_1/#define _Machine_2/g' /opt/ppmac/usrflash/Project/PMAC\ Script\ Language/Global\ Includes/global\ definitions.pmh system mount -o remount,ro /opt
  13. I think your idea is very creative. I don't know much about your equipment, something like this can be fixed in the controller as a file. Or modify and set through a host computer software. I may not want unrelated personnel to easily change the PMAC controller configuration through DIP switches. I personally prefer to perform this operation through a dedicated host computer software. I think your needs can be met, but it will be a little more complicated.
  14. My personal experience is that I don't trust the settings generated by the IDE software. Usually I write the settings into the Global Includes folder, and disallow PPMAC from using systemsetup.cfg. It is very reliable to use the "fsave" command to temporarily save the contents of certain variables. Our users have been using it without any problems.
  15. Please use English or contact Omron in China for resolution.
×
×
  • Create New...