{"id":90909,"date":"2025-01-02T07:58:04","date_gmt":"2025-01-02T04:28:04","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86\/"},"modified":"2025-01-02T07:58:04","modified_gmt":"2025-01-02T04:28:04","slug":"%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86\/","title":{"rendered":"\u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0645\u0648\u0627\u0632\u06cc \u062f\u0644\u062a\u0627 \u062a\u0648\u0633\u0637 \u0633\u06cc \u0634\u0627\u0631\u067e | \u0686\u06af\u0648\u0646\u0647 \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u0648 \u062f\u0633\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645\u061f"},"content":{"rendered":"<div data-article-id=\"2185194\" id=\"article-body\">\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0645\u0627 \u0627\u0632 ZMC406R-V2 EtherCAT Motion Controller \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0646 \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648 \u06cc\u0627 \u0645\u0639\u06a9\u0648\u0633 \u0628\u0631\u0627\u06cc \u062f\u0644\u062a\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 C# \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0646\u062d\u0648\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u06cc \u0622\u0646.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86\/#1_%D8%B3%DB%8C_%D8%B4%D8%A7%D8%B1%D9%BE_%DA%86%DA%AF%D9%88%D9%86%D9%87_%D8%A8%D8%A7%D8%B2%D9%88%DB%8C_%D8%B1%D8%A8%D8%A7%D8%AA%DB%8C%DA%A9_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D8%AF%D9%84%D8%AA%D8%A7_%D8%B1%D8%A7_%D8%AA%D9%88%D8%B3%D8%B9%D9%87_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF%D8%9F\" >1. \u0633\u06cc \u0634\u0627\u0631\u067e \u0686\u06af\u0648\u0646\u0647 \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0645\u0648\u0627\u0632\u06cc \u062f\u0644\u062a\u0627 \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u0645\u06cc \u062f\u0647\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86\/#2_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA_%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1_%D8%A7%D8%B5%D9%84%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D9%84%D8%AA%D8%A7\" >2. \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u062f\u0644\u062a\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86\/#3_%DB%8C%DA%A9_%D8%B1%D9%88%D8%A7%D9%84_%D8%B3%DB%8C_%D8%B4%D8%A7%D8%B1%D9%BE_%DA%86%DA%AF%D9%88%D9%86%D9%87_%D8%B3%DB%8C%D9%86%D9%85%D8%A7%D8%AA%DB%8C%DA%A9_%D8%AF%D9%84%D8%AA%D8%A7_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\" >3. \u06cc\u06a9 \u0631\u0648\u0627\u0644: \u0633\u06cc \u0634\u0627\u0631\u067e \u0686\u06af\u0648\u0646\u0647 \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u062f\u0644\u062a\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u061f<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86\/#%E2%80%94_%D9%86%D8%B8%D8%B1%DB%8C%D9%87_%E2%80%94\" >&#8212; \u0646\u0638\u0631\u06cc\u0647 &#8212;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%d8%a8%d8%a7%d8%b2%d9%88%db%8c-%d8%b1%d8%a8%d8%a7%d8%aa%db%8c%da%a9-%d9%85%d9%88%d8%a7%d8%b2%db%8c-%d8%af%d9%84%d8%aa%d8%a7-%d8%aa%d9%88%d8%b3%d8%b7-%d8%b3%db%8c-%d8%b4%d8%a7%d8%b1%d9%be-%da%86\/#%E2%80%93%D9%85%D8%AB%D8%A7%D9%84%E2%80%93\" >&#8211;\u0645\u062b\u0627\u0644&#8211;<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"1_%D8%B3%DB%8C_%D8%B4%D8%A7%D8%B1%D9%BE_%DA%86%DA%AF%D9%88%D9%86%D9%87_%D8%A8%D8%A7%D8%B2%D9%88%DB%8C_%D8%B1%D8%A8%D8%A7%D8%AA%DB%8C%DA%A9_%D9%85%D9%88%D8%A7%D8%B2%DB%8C_%D8%AF%D9%84%D8%AA%D8%A7_%D8%B1%D8%A7_%D8%AA%D9%88%D8%B3%D8%B9%D9%87_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF%D8%9F\"><\/span>\n<p>  1. \u0633\u06cc \u0634\u0627\u0631\u067e \u0686\u06af\u0648\u0646\u0647 \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0645\u0648\u0627\u0632\u06cc \u062f\u0644\u062a\u0627 \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u0645\u06cc \u062f\u0647\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0627\u0632 VS2010 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 1: \u0633\u0627\u062e\u062a \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647<br \/>&#8211; \u0631\u0648\u06cc &#8220;\u0641\u0627\u06cc\u0644&#8221; &#8211; &#8220;\u062c\u062f\u06cc\u062f&#8221; &#8211; &#8220;\u067e\u0631\u0648\u0698\u0647&#8221;&#8211; \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f<br \/>&#8211; &#8220;Visual C#&#8221;\u060c Net Framework 4 \u0648 Windows Program \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f&#8211;<\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 2: \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 Zmotion \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f<br \/>&#8211;\u0631\u0648\u0634 1: \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u062f\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a Zmotion &#8220;\u062f\u0627\u0646\u0644\u0648\u062f&#8221; \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f\u060c \u0633\u067e\u0633 \u062e\u0648\u062f\u062a\u0627\u0646 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f&#8211;<br \/>&#8211;\u0631\u0648\u0634 2: \u0628\u0627 \u0645\u0627 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f\u060c \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f&#8211;<\/p>\n<p>\u0645\u0631\u062d\u0644\u0647 3: \u0641\u0627\u06cc\u0644 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 C# Zmotion \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u06cc\u062f<br \/>&#8211; \u0641\u0627\u06cc\u0644 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0633\u06cc \u0634\u0627\u0631\u067e \u062f\u0627\u0646\u0644\u0648\u062f \u0634\u062f\u0647 \u0648 \u0641\u0627\u06cc\u0644 \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u062c\u062f\u06cc\u062f \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f&#8211;<br \/><em>&#8220;zmcaux.cs&#8221; \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u062c\u062f\u06cc\u062f \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f<\/em><br \/><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv85no07tk18f6klnt0r7.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"732\" height=\"248\" title=\"\"><br \/><em>&#8220;zaux.dll&#8221; \u0648 &#8220;zmotion.dll&#8221; \u0631\u0627 \u062f\u0631 \u067e\u0648\u0634\u0647 bin\\debug \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f<\/em><br \/><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxbjnbrst02xw9h453nk.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"745\" height=\"251\" title=\"\"><\/p>\n<p>&#8211;\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u062c\u062f\u06cc\u062f&#8211;<br \/>*\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0631\u0648\u06cc &#8220;show all files&#8221; \u062f\u0631 &#8220;solution resource manager&#8221; \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f \u0648 \u0631\u0648\u06cc \u0641\u0627\u06cc\u0644 &#8220;zmcaux.cs&#8221; \u0631\u0627\u0633\u062a \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f\u060c \u0633\u067e\u0633 \u0631\u0648\u06cc &#8220;include in project&#8221; \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>&#8211;\u0648\u06cc\u0631\u0627\u06cc\u0634&#8211;<br \/><em>\u0631\u0648\u06cc &#8220;\u0641\u0631\u0645 1&#8221; \u0627\u0632 &#8220;\u0641\u0631\u0645 1.cs&#8221; \u062f\u0648\u0628\u0627\u0631 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f<\/em><br \/><em>&#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 cszmcaux&#8221; \u0631\u0627 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<\/em><br \/>*\u062f\u0633\u062a\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u062d\u0627\u0644\u062a &#8220;g_handle&#8221;.<br \/><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn5y7qi5cg6txc8gcxib.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"726\" height=\"561\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"2_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA_%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1_%D8%A7%D8%B5%D9%84%DB%8C_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AF%D9%84%D8%AA%D8%A7\"><\/span>\n<p>  2. \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u062f\u0644\u062a\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 &#8220;\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631&#8221;\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0645\u0627\u0645 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u06a9\u067e\u0633\u0648\u0644\u0647 \u0634\u062f\u0647 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0627\u06cc\u0646\u062c\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0627 \u0645\u0627 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0644\u062a\u0627 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<br \/>(1) \u0641\u0631\u0645\u0627\u0646 \u0627\u062a\u0635\u0627\u0644 &#8212; ZAux_OpenEth<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdek6u8ebhgywmedvrb4f.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"662\" height=\"538\" title=\"\"><\/p>\n<p>(2) \u0627\u062a\u0635\u0627\u0644 \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648 &#8212; ZAux_Direct_Connreframe<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpqyl1dt6mpqxhfsslop.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"662\" height=\"574\" title=\"\"><\/p>\n<p>(3) \u0627\u062a\u0635\u0627\u0644 \u0645\u0639\u06a9\u0648\u0633 &#8212; ZAux_Direct_Connframe<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiuvdxbfcl5eyrf1fvfo8.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"629\" height=\"879\" title=\"\"><\/p>\n<p>(4) \u0633\u06cc\u0633\u062a\u0645 \u0645\u062e\u062a\u0635\u0627\u062a \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0631\u0627 \u0628\u0686\u0631\u062e\u0627\u0646\u06cc\u062f \u062a\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0645\u062e\u062a\u0635\u0627\u062a \u06a9\u0627\u0631\u0628\u0631 \u0631\u0627 \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u062f<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsmqipst071iov0pc906.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"616\" height=\"880\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"3_%DB%8C%DA%A9_%D8%B1%D9%88%D8%A7%D9%84_%D8%B3%DB%8C_%D8%B4%D8%A7%D8%B1%D9%BE_%DA%86%DA%AF%D9%88%D9%86%D9%87_%D8%B3%DB%8C%D9%86%D9%85%D8%A7%D8%AA%DB%8C%DA%A9_%D8%AF%D9%84%D8%AA%D8%A7_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\"><\/span>\n<p>  3. \u06cc\u06a9 \u0631\u0648\u0627\u0644: \u0633\u06cc \u0634\u0627\u0631\u067e \u0686\u06af\u0648\u0646\u0647 \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u062f\u0644\u062a\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h4><span class=\"ez-toc-section\" id=\"%E2%80%94_%D9%86%D8%B8%D8%B1%DB%8C%D9%87_%E2%80%94\"><\/span>\n<p>  &#8212; \u0646\u0638\u0631\u06cc\u0647 &#8212;<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>(1) \u062c\u0647\u062a \u0645\u062d\u0648\u0631 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<br \/>\u0627\u0632 \u0645\u062f\u0644 \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0645\u0648\u0627\u0632\u06cc Zmotion Delta \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u062c\u0647\u062a 3 \u0645\u062d\u0648\u0631 \u0645\u0641\u0635\u0644\u06cc \u0647\u0646\u06af\u0627\u0645 \u0686\u0631\u062e\u0634 \u0628\u0647 \u0633\u0645\u062a \u067e\u0627\u06cc\u06cc\u0646 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0633\u0645\u062a \u062c\u0644\u0648 \u0628\u0627\u0634\u062f\u060c \u0648 \u062c\u0647\u062a \u0645\u062d\u0648\u0631 \u0686\u0631\u062e\u0634\u06cc \u0627\u0646\u062a\u0647\u0627\u06cc\u06cc \u0646\u06cc\u0632 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u062e\u0644\u0627\u0641 \u062c\u0647\u062a \u0639\u0642\u0631\u0628\u0647\u200c\u0647\u0627\u06cc \u0633\u0627\u0639\u062a \u0645\u06cc\u200c\u0686\u0631\u062e\u062f (\u0628\u0647 \u0633\u0645\u062a \u067e\u0627\u06cc\u06cc\u0646) \u0628\u0627\u06cc\u062f \u0628\u0647 \u0633\u0645\u062a \u062c\u0644\u0648 \u0628\u0627\u0634\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68iiz7ukwhry3nvlls57.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"559\" height=\"372\" title=\"\"><\/p>\n<p>(2) \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0644\u0637\u0641\u0627\u064b \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u0631\u0627 \u0627\u0632 \u0633\u0627\u0632\u0646\u062f\u0647 \u0628\u062f\u0646\u0647 \u0631\u0628\u0627\u062a \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0633\u067e\u0633 \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u062f\u0631 \u0631\u062c\u06cc\u0633\u062a\u0631 TABLE \u06a9\u0646\u062a\u0631\u0644\u0631 \u062e\u0648\u062f \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f\u060c \u0633\u067e\u0633 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0631\u0627\u0628\u0637 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648 \u06cc\u0627 \u0645\u0639\u06a9\u0648\u0633 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2tsoqijv6i1jyai995ka.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"559\" height=\"378\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feo51kwvz5muxkkzzv95q.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"625\" title=\"\"><\/p>\n<p>(3) \u0645\u0628\u062f\u0627 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0627\u0644\u0641. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0647\u0631 \u0645\u06cc\u0644\u0647 \u0627\u062a\u0635\u0627\u0644 \u0645\u062d\u0648\u0631 L1 \u062f\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a \u0627\u0641\u0642\u06cc \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f\u060c \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0648\u0642\u0639\u06cc\u062a \u0645\u0628\u062f\u0627 \u0627\u062a\u0635\u0627\u0644 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f (\u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc\u060c \u0628\u062f\u0646\u0647 \u0631\u0628\u0627\u062a \u067e\u06cc\u0646 \u0645\u0648\u0642\u0639\u06cc\u062a \u06cc\u0627\u0628\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u06af\u0631 \u0646\u0647\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 &#8220;gradienter&#8221; \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u062f L1 \u062f\u0631 \u0627\u0641\u0642\u06cc \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0628\u062f\u0627 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0628. \u062f\u0631 \u0627\u06cc\u0646 \u0632\u0645\u0627\u0646 \u062c\u0647\u062a \u0627\u062a\u0635\u0627\u0644 \u0645\u062d\u0648\u0631 0 \u0648 \u0645\u062d\u0648\u0631 1&#39; \u062c\u0647\u062a X \u0633\u06cc\u0633\u062a\u0645 \u0645\u062e\u062a\u0635\u0627\u062a \u062f\u06a9\u0627\u0631\u062a\u06cc \u0627\u0633\u062a \u0648 \u0645\u0628\u062f\u0627 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0631 \u0645\u0631\u06a9\u0632 \u0635\u0641\u062d\u0647 \u0627\u0641\u0642\u06cc \u0634\u0627\u062a\u0648\u0646 L1 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwaw3aztxa0h0vnk1357y.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"754\" title=\"\"><\/p>\n<p>(4) \u0645\u062d\u0648\u0631 \u0645\u0634\u062a\u0631\u06a9 \u0648 \u0645\u062d\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0645\u062d\u0648\u0631 \u0645\u0634\u062a\u0631\u06a9 \u06cc\u06a9 \u0645\u062d\u0648\u0631 \u0645\u0648\u062a\u0648\u0631 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062f\u0644\u062a\u0627\u060c \u062f\u0627\u0631\u0627\u06cc \u0645\u062d\u0648\u0631 \u0645\u0634\u062a\u0631\u06a9 0\u060c \u0645\u062d\u0648\u0631 \u0645\u0634\u062a\u0631\u06a9 1\u060c \u0645\u062d\u0648\u0631 \u0645\u0634\u062a\u0631\u06a9 2 \u0648 \u0645\u062d\u0648\u0631 \u0686\u0631\u062e\u0634 \u0627\u0646\u062a\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a. \u0648 \u0645\u0642\u0627\u062f\u06cc\u0631 \u067e\u0627\u0644\u0633 \u0627\u06cc\u0646 \u0645\u062d\u0648\u0631\u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u0627\u0644\u0633 \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062f\u0631 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0634\u0648\u062f (\u0648\u0627\u062d\u062f = \u067e\u0627\u0644\u0633 \u0645\u0648\u062a\u0648\u0631 \u062f\u0631 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u0647 * \u0646\u0633\u0628\u062a \u06a9\u0627\u0647\u0634 \/ 360).<\/p>\n<p>\u0645\u062d\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u06cc\u06a9 \u0645\u062d\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u062e\u062a\u0635\u0627\u062a \u062f\u06a9\u0627\u0631\u062a\u06cc \u0627\u0633\u062a\u060c \u062f\u0627\u0631\u0627\u06cc \u0645\u062d\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc \u0633\u06cc\u0633\u062a\u0645 X\u060c \u0645\u062d\u0648\u0631 Y\u060c \u0645\u062d\u0648\u0631 Z \u0648 \u06cc\u06a9 \u0645\u062d\u0648\u0631 \u0686\u0631\u062e\u0634 RZ \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc X,Y,Z \u0648\u0627\u062d\u062f\u0647\u0627\u06cc \u0622\u0646\u0647\u0627 (\u0645\u0642\u062f\u0627\u0631 \u067e\u0627\u0644\u0633) 1000 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f. \u0628\u0631\u0627\u06cc RZ \u0648\u0627\u062d\u062f\u0647\u0627 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0627\u0644\u0633 \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062f\u0631 \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0634\u0648\u0646\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E2%80%93%D9%85%D8%AB%D8%A7%D9%84%E2%80%93\"><\/span>\n<p>  &#8211;\u0645\u062b\u0627\u0644&#8211;<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>(1) \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f<\/strong><\/p>\n<p>\u0628\u0647 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f\u060c \u062f\u0633\u062a\u0647 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f\u060c \u0633\u067e\u0633 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0627\u0632 \u062f\u0633\u062a\u0647 \u0628\u062f\u0633\u062a \u0622\u0645\u062f\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/\/connect to controller, default IP is 192.168.0.11\nZauxErr = zmcaux.ZAux_OpenEth(\"192.168.0.11\", out g_Handle);\nif (0 != ZauxErr)\n{\nAlmInifFile.Write(DateTime.Now.ToString(\"F\"), \"ZAux_OpenEth Execute Error, Error Code:\" + ZauxErr.ToString(), \"Error Code Info\");\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>(2) \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0645\u0648\u0627\u0632\u06cc \u062f\u0644\u062a\u0627 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffdeagneajqc06h0tlojz.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"524\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66tpnwsfnclq7idr9lj5.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"530\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Figut52dwe2rzfn7d2dqy.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"499\" title=\"\"><\/p>\n<p><strong>(3) \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648 \u0628\u0633\u0627\u0632\u06cc\u062f<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/************************************************************************************\n'Task No.: \/\n'Function of this function: build robotic arm forward or inverse connection \n'Input: Mode=0\u2014disconnect, 1\u2014inverse connection, 2\u2014forward connection\n'Output: \/\n'Returned Value: 0\u2014success, 1--failure\n'Notes: \n\u2018    *only controller with R is valid    \n'    *when in forward, virtual axis MTYPE = 34\n\u2018    *when in inverse, joint axis MTYPE = 34\n\u2018    *when in inverse, keep enable.\n**************************************************************************************\/\npublic int ScaraEstab(int Mode)\n{\n    \/\/update UI interface\u2019s Delta parameters\n    ScaraParaWindows.DeltaParaSave();\n    \/\/set robotic arm parameters\n    SetControPara();\n    \/\/save Delta parameters into Ini file\n    WriteIniFile();\n    \/\/clear controller alarms\n    ZauxErr = zmcaux.ZAux_Direct_Single_Datum(g_Handle, 0, 0);\n    \/\/update axis list, the axis sequence is J1, J2, Ju, Jz(joint-axis), Vx, Vy, Vr, Vz (virtual-axis)\n    int[] mJScaraAxisList = new int[4]; \/\/joint-axis list\n    int[] mVScaraAxisList = new int[4]; \/\/virtual-axis list\n    for (int i = 0; i &lt; 4; i++)\n    {\n        mJScaraAxisList[i] = gDeltaAxisList[i];\n        mVScaraAxisList[i] = gVAxisList[i];\n    }\n    \/\/check whether robotic arm parameters are correct\n    if ((DeltaR &lt;= 0) || (Deltar &lt;= 0) || (DeltaL1 &lt;= 0) || (DeltaL2 &lt;= 0))\n    {\n        MessageBox.Show(\"Delta Robot has Problem, Please Confirm! \");\n        return -1;\n    }\n    \/\/first to save robotic arm structural parameters into controller TABLE register, then it can build robotic arm connection\n    \/\/update robotic arm parameters into controller TABLE register\n    float[] ScaraParaList = new float[11] { DeltaR, Deltar, DeltaL1, DeltaL2, gMotorPulNum[0] * gReducRatio[0], gMotorPulNum[1] * gReducRatio[1], gMotorPulNum[2] * gReducRatio[2], 0, 0, 0, gMotorPulNum[3] * gReducRatio[3] };\n    ZauxErr = zmcaux.ZAux_Direct_SetTable(g_Handle, TableStaraId, 11, ScaraParaList);\n    if (0 != ZauxErr)\n    {\n        return -1;\n    }\n    if ((1 == Mode) &amp;&amp; (0 == ZauxErr)) \/\/build inverse solution for the robot (when the robot parameters are updated successfully)\n    {\n        \/\/build Scara inverse\n        ZauxErr = zmcaux.ZAux_Direct_Connframe(g_Handle, 4, mJScaraAxisList, 14, TableStaraId, 4, mVScaraAxisList);\n        if (0 != ZauxErr)\n        {\n            ProceWindows.WriteLog(\"Fail to Switch Inverse\");\n            return -1;\n        }\n        ProceWindows.WriteLog(\"Switch to Inverse\");\n    }\n    else if ((2 == Mode) &amp;&amp; (0 == ZauxErr)) \/\/build forward solution for the robot (when the robot parameters are updated successfully)\n    {\n        \/\/build Scara forward\n        ZauxErr = zmcaux.ZAux_Direct_Connreframe(g_Handle, 4, mVScaraAxisList, 14, TableStaraId, 4, mJScaraAxisList);\n        if (0 != ZauxErr)\n        {\n            ProceWindows.WriteLog(\"Fail to Switch Forward\");\n            return -1;\n        }\n        ProceWindows.WriteLog(\"Switch to Forward\");\n        }\n    }\n    return 0;\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647: \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u060c MTYPE \u0645\u062d\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc 34\u060c \u0628\u0631\u0627\u06cc \u0645\u0639\u06a9\u0648\u0633\u060c MTYPE \u0645\u062d\u0648\u0631 \u0645\u0634\u062a\u0631\u06a9 33 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u060c \u0644\u0637\u0641\u0627\u064b \u0645\u0642\u0627\u0644\u0647 \u0642\u0628\u0644\u06cc &#8220;\u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u062d\u0631\u06a9\u062a EtherCAT \u062f\u0631 \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u062f\u0644\u062a\u0627&#8221; \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p><strong>(4) \u0639\u0645\u0644\u06cc\u0627\u062a \u062f\u0633\u062a\u06cc \u062d\u0631\u06a9\u062a<\/strong><\/p>\n<p>\u062f\u0631 \u0632\u06cc\u0631 \u0631\u0627\u0628\u0637 \u062d\u0631\u06a9\u062a \u062f\u0633\u062a\u06cc \u0631\u0648\u062a\u06cc\u0646 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u062f\u06a9\u0645\u0647 &#8220;\u062f\u0633\u062a\u06cc&#8221; &#8220;\u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u062e\u062a\u0635\u0627\u062a \u0645\u0634\u062a\u0631\u06a9&#8221; \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f\u060c \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u062a\u0635\u0627\u0644 \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u06a9\u0645\u0647 &#8220;\u062f\u0633\u062a\u06cc&#8221; &#8220;\u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u062e\u062a\u0635\u0627\u062a \u062f\u06a9\u0627\u0631\u062a\u06cc&#8221; \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f\u060c \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u062a\u0635\u0627\u0644 \u0645\u0639\u06a9\u0648\u0633 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0633\u0631\u0639\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0645\u0642\u062f\u0627\u0631 \u0645\u0634\u062e\u0635\u06cc \u06a9\u0627\u0647\u0634 \u0645\u06cc \u06cc\u0627\u0628\u062f\u060c \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u062d\u0627\u0644\u062a \u0627\u06cc\u0646\u0686 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaprswnrbfy7qd9xap78.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"513\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feifyimzoy3oob5j18iy1.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"511\" title=\"\"><\/p>\n<p>\u0627\u0644\u0641. \u062d\u0631\u06a9\u062a \u062f\u0633\u062a\u06cc \u0645\u062d\u0648\u0631 \u0645\u0634\u062a\u0631\u06a9<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/************************************************************************************\n'Task No.: \/\n'Function of this \u201cfunction\u201d: joint-axis manual inverse motion, press \u201c-\u201c to call\n'Input: \/\n'Output: \/ \n'Returned Value: \/\n'Note: \/ \n**************************************************************************************\/\nprivate void JHandDirRev0_MouseDown(object sender, MouseEventArgs e)\n{\n    \/\/whether locks it or not, after locked, then it can move\n    int EnableState = 0;\n    cszmcaux.zmcaux.ZAux_Direct_GetAxisEnable(MainWindows.g_Handle, MainWindows.gDeltaAxisList[0], ref EnableState);\n    \/\/if enabled\n    if ((1 == EnableState) || (MainWindows.IsDebug)) \n    {\n        int Vmtype = 0;\/\/virtual axis MTYPE\n        cszmcaux.zmcaux.ZAux_Direct_GetMtype(MainWindows.g_Handle, MainWindows.gVAxisList[0], ref Vmtype); \n        \/\/if it is not forward state\n        if (Vmtype != 34)\n        {\n            \/\/build robotic arm forward connection\n            if (0 != MainWindows.ScaraEstab(2))\n            {\n                \/\/Fail to build the robot connection\n                return;\n            }\n        }\n        \/\/which button to be pressed\n        int Id = 0;\n        for (int i = 0; i &lt; 4; i++)\n        {\n            if (((Button)sender).Name == (\"JHandDirRev\" + i))\n            {\n                Id = i;\n            }\n        }\n        int TempAxis = 0;\n        TempAxis = MainWindows.gDeltaAxisList[Id];\n        \/\/if manual speed is less than 5, it is inching mode\n        if (5 &lt;= MainWindows.HnadSpeedPerc)\n        {\n            \/\/set point motion speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.HnadSpeedPerc * MainWindows.gAxisHandSpeed[Id] \/ 100);\n            \/\/send \u201cinverse\u201d motion command\n            cszmcaux.zmcaux.ZAux_Direct_Single_Vmove(MainWindows.g_Handle, TempAxis, -1);\n        }\n        else\n        {\n            \/\/set inching speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.gAxisHandSpeed[Id] \/ 10);\n            \/\/send inching motion command\n            cszmcaux.zmcaux.ZAux_Direct_Single_Move(MainWindows.g_Handle, TempAxis, -1 * MainWindows.HnadSpeedPerc);\n        }\n    }\n}\n\/************************************************************************************\n'Task No.: \/\n'Function of this \u201cfunction\u201d: joint-axis manual forward motion, press \u201c+\u201c to call\n'Input: \/\n'Output: \/ \n'Returned Value: \/\n'Note: \/     \n**************************************************************************************\/\nprivate void JHandDirFwd0_MouseDown(object sender, MouseEventArgs e)\n{\n    \/\/whether locks it or not, after locked, then it can move\n    int EnableState = 0;\n    cszmcaux.zmcaux.ZAux_Direct_GetAxisEnable(MainWindows.g_Handle, MainWindows.gDeltaAxisList[0], ref EnableState);\n    \/\/if enabled\n    if ((1 == EnableState) || (MainWindows.IsDebug)) \n    {\n        int Vmtype = 0;\/\/virtual axis MTYPE\n        cszmcaux.zmcaux.ZAux_Direct_GetMtype(MainWindows.g_Handle, MainWindows.gVAxisList[0], ref Vmtype); \n        \/\/if it is not forward state\n        if (Vmtype != 34)\n        {\n            \/\/build robotic arm forward kinematic\n            if (0 != MainWindows.ScaraEstab(2))\n            {\n                \/\/Fail to build the robot connection\n                return;\n            }\n        }\n        \/\/which button to be pressed\n        int Id = 0;\n        for (int i = 0; i &lt; 4; i++)\n        {\n            if (((Button)sender).Name == (\"JHandDirFwd\" + i))\n            {\n                Id = i;\n            }\n        }\n        int TempAxis = 0;\n        TempAxis = MainWindows.gDeltaAxisList[Id];\n        \/\/if manual speed is less than 5, it is inching mode\n        if (5 &lt;= MainWindows.HnadSpeedPerc)\n        {\n            \/\/set point motion speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.HnadSpeedPerc * MainWindows.gAxisHandSpeed[Id] \/ 100);\n            \/\/send \u201cforward\u201d motion command\n            cszmcaux.zmcaux.ZAux_Direct_Single_Vmove(MainWindows.g_Handle, TempAxis, 1);\n        }\n        else\n        {\n            \/\/set inching speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.gAxisHandSpeed[Id] \/ 10);\n            \/\/send inching motion command\n            cszmcaux.zmcaux.ZAux_Direct_Single_Move(MainWindows.g_Handle, TempAxis, 1 * MainWindows.HnadSpeedPerc);\n        }\n    }\n}\n\/************************************************************************************\n'Task No.: \/\n'Function of this \u201cfunction\u201d: joint-axis stop manual motion, call when point button is released\n'Input: \/\n'Output: \/ \n'Returned Value: \/\n'Note: \/      \n**************************************************************************************\/\nprivate void JHandDirRev0_MouseUp(object sender, MouseEventArgs e)\n{\n    \/\/which button to be pressed\n    int Id = 0;\n    for (int i = 0; i &lt; 4; i++)\n    {\n        if (((Button)sender).Name == (\"JHandDirRev\" + i))\n        {\n            Id = i;\n        }\n    }\n    int TempAxis = 0;\n    TempAxis = MainWindows.gDeltaAxisList[Id];\n    \/\/if manual speed is less than 5, it is inching mode\n    if (5 &lt;= MainWindows.HnadSpeedPerc)\n    {\n        MainWindows.ZauxErr = cszmcaux.zmcaux.ZAux_Direct_Single_Cancel(MainWindows.g_Handle, TempAxis, 2);\n    }\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628. \u062d\u0631\u06a9\u062a \u062f\u0633\u062a\u06cc \u0645\u062d\u0648\u0631 \u0645\u062c\u0627\u0632\u06cc<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/************************************************************************************\n'Task No.: \/\n'Function of this \u201cfunction\u201d: virtual manual inverse motion, press \u201c-\u201c to call\n'Input: \/\n'Output: \/ \n'Returned Value: \/\n'Note: \/     \n**************************************************************************************\/\nprivate void VHandDirRev0_MouseDown(object sender, MouseEventArgs e)\n{\n    \/\/whether locks it or not, after locked, then it can move\n    int EnableState = 0;\n    cszmcaux.zmcaux.ZAux_Direct_GetAxisEnable(MainWindows.g_Handle, MainWindows.gDeltaAxisList[0], ref EnableState);\n    \/\/if enabled\n    if ((1 == EnableState) || (MainWindows.IsDebug)) \n    {\n        int Jmtype = 0;\/\/joint-axis Mtype\n        cszmcaux.zmcaux.ZAux_Direct_GetMtype(MainWindows.g_Handle, gDeltaAxisList[0], ref Jmtype);\n        \/\/if it is not inverse state\n        if (Jmtype != 33)\n        {\n            \/\/build robotic arm inverse kinematic\n            if (0 != MainWindows.ScaraEstab(1))\n            {\n                \/\/Fail to build the robot connection\n                return;\n            }\n        }\n        \/\/which button to be pressed\n        int Id = 0;\n        for (int i = 0; i &lt; 5; i++)\n        {\n            if (((Button)sender).Name == (\"VHandDirRev\" + i))\n            {\n                Id = i;\n            }\n        }\n        int TempAxis = 0;\n        \/\/update current robotic arm state\n        TempAxis = MainWindows.gVAxisList[Id];\n        \/\/if manual speed is less than 5, it is inching mode\n        if (5 &lt;= MainWindows.HnadSpeedPerc)\n        {\n            \/\/set point motion speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.HnadSpeedPerc * MainWindows.gAxisHandSpeed[Id] \/ 100);\n            \/\/send \u201cinverse\u201d motion command\n           cszmcaux.zmcaux.ZAux_Direct_Single_Vmove(MainWindows.g_Handle, TempAxis, -1); \n        }\n        else\n        {\n            \/\/set inching speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.gAxisHandSpeed[Id] \/ 10);\n            \/\/send inching motion command\n           cszmcaux.zmcaux.ZAux_Direct_Single_Move(MainWindows.g_Handle, TempAxis, -1 * MainWindows.HnadSpeedPerc);\n        }\n    }\n}\n\/************************************************************************************\n'Task No.: \/\n'Function of this \u201cfunction\u201d: joint-axis manual forward motion, press \u201c+\u201c to call\n'Input: \/\n'Output: \/ \n'Returned Value: \/\n'Note: \/    \n**************************************************************************************\/\nprivate void VHandDirFwd0_MouseDown(object sender, MouseEventArgs e)\n{\n    \/\/whether locks it or not, after locked, then it can move\n    int EnableState = 0;\n    cszmcaux.zmcaux.ZAux_Direct_GetAxisEnable(MainWindows.g_Handle, MainWindows.gDeltaAxisList[0], ref EnableState);\n    \/\/if enabled\n    if ((1 == EnableState) || (MainWindows.IsDebug)) \n    {\n        int Jmtype = 0;\/\/joint-axis Mtype\n        cszmcaux.zmcaux.ZAux_Direct_GetMtype(MainWindows.g_Handle, gDeltaAxisList[0], ref Jmtype);\n        \/\/if it is not forward kinematic\n        if (Jmtype != 33)\n        {\n            \/\/build robotic arm forward connection\n            if (0 != MainWindows.ScaraEstab(1))\n            {\n                \/\/Fail to build the robot connection\n                return;\n            }\n        }\n        \/\/which button to be pressed\n        int Id = 0;\n        for (int i = 0; i &lt; 5; i++)\n        {\n            if (((Button)sender).Name == (\"VHandDirFwd\" + i))\n            {\n                Id = i;\n            }\n        }\n        int TempAxis = 0;\n        \/\/update current robotic arm state\n        TempAxis = MainWindows.gVAxisList[Id];\n        \/\/if manual speed is less than 5, it is inching mode\n        if (5 &lt;= MainWindows.HnadSpeedPerc)\n        {\n           \/\/set point motion speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.HnadSpeedPerc * MainWindows.gAxisHandSpeed[Id] \/ 100);\n           \/\/send \u201cforward\u201d motion command\n           cszmcaux.zmcaux.ZAux_Direct_Single_Vmove(MainWindows.g_Handle, TempAxis, 1); \n        }\n        else\n        {\n            \/\/set inching speed\n            cszmcaux.zmcaux.ZAux_Direct_SetSpeed(MainWindows.g_Handle, TempAxis, MainWindows.gAxisHandSpeed[Id] \/ 10);\n            \/\/send inching motion command\n           cszmcaux.zmcaux.ZAux_Direct_Single_Move(MainWindows.g_Handle, TempAxis, 1 * MainWindows.HnadSpeedPerc);\n        }\n    }\n}\n\/************************************************************************************\n'Task No.: \/\n'Function of this \u201cfunction\u201d: virtual-axis stop motion, call when the point motion button is released\n'Input: \/\n'Output: \/ \n'Returned Value: \/\n'Note: \/     \n**************************************************************************************\/\n\/\/stop the motion\nprivate void VHandDirRev0_MouseUp(object sender, MouseEventArgs e)\n{\n    \/\/which button to be pressed\n    int Id = 0;\n    for (int i = 0; i &lt; 5; i++)\n    {\n        if (((Button)sender).Name == (\"VHandDirRev\" + i))\n        {\n            Id = i;\n        }\n    }\n    int TempAxis = 0;\n    TempAxis = MainWindows.gVAxisList[Id];\n    \/\/if manual speed is less than 5, it is inching mode\n    if (5 &lt;= MainWindows.HnadSpeedPerc)\n    {\n        cszmcaux.zmcaux.ZAux_Direct_Single_Cancel(MainWindows.g_Handle, TempAxis, 2);\n    }\n}\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>(5) \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632 \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<p>\u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 &#8220;ZRobotView&#8221; \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f\u060c IP \u06a9\u0646\u062a\u0631\u0644\u0631 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f (IP \u067e\u06cc\u0634 \u0641\u0631\u0636: 192.168.0.11)\u060c \u0633\u067e\u0633 \u0631\u0648\u06cc &#8220;connect&#8221; \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0635\u0627\u0644\u060c \u0631\u0648\u06cc &#8220;\u0633\u0648\u0626\u06cc\u0686&#8221; \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0633\u0647 \u0628\u0639\u062f\u06cc \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6gr1p1ohtaew2o82zdzd.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"498\" title=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3hn00g943jyrqshjp75.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"499\" title=\"\"><\/p>\n<p>\u0627\u06cc\u0646 \u0647\u0645\u0647 \u0627\u0633\u062a\u060c \u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0634\u0645\u0627 \u0645\u062a\u0634\u06a9\u0631\u0645 &#8211; \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0645\u0648\u0627\u0632\u06cc \u062f\u0644\u062a\u0627 \u062a\u0648\u0633\u0637 \u0633\u06cc \u0634\u0627\u0631\u067e | \u0646\u062d\u0648\u0647 \u0627\u0646\u062c\u0627\u0645 \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u0648 \u062f\u0633\u062a\u06cc.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062a\u0648\u0633\u0637 ZMOTION \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0628\u0627 \u0634\u0645\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0647\u0645 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u06cc\u0645.<\/p>\n<p>\u062a\u0648\u062c\u0647: \u06a9\u067e\u06cc \u0631\u0627\u06cc\u062a \u0645\u062a\u0639\u0644\u0642 \u0628\u0647 Zmotion Technology \u0627\u0633\u062a\u060c \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u06a9\u0631\u0627\u0631\u060c \u0644\u0637\u0641\u0627 \u0645\u0646\u0628\u0639 \u0645\u0642\u0627\u0644\u0647 \u0631\u0627 \u0630\u06a9\u0631 \u06a9\u0646\u06cc\u062f. \u0645\u062a\u0634\u06a9\u0631\u0645.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0645\u0627 \u0627\u0632 ZMC406R-V2 EtherCAT Motion Controller \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0646 \u0633\u06cc\u0646\u0645\u0627\u062a\u06cc\u06a9 \u0631\u0648 \u0628\u0647 \u062c\u0644\u0648 \u06cc\u0627 \u0645\u0639\u06a9\u0648\u0633 \u0628\u0631\u0627\u06cc \u062f\u0644\u062a\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 C# \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0646\u062d\u0648\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u06cc \u0622\u0646. 1. \u0633\u06cc \u0634\u0627\u0631\u067e \u0686\u06af\u0648\u0646\u0647 \u0628\u0627\u0632\u0648\u06cc \u0631\u0628\u0627\u062a\u06cc\u06a9 \u0645\u0648\u0627\u0632\u06cc \u062f\u0644\u062a\u0627 \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u0645\u06cc \u062f\u0647\u062f\u061f \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0627\u0632 VS2010 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0645\u0631\u062d\u0644\u0647 1: \u0633\u0627\u062e\u062a \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647&#8211; \u0631\u0648\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":90910,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftlizwm4g7eruj7o0teu8.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-90909","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/90909","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=90909"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/90909\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/90910"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=90909"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=90909"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=90909"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}