UnderAutomation.Yaskawa 1.3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- underautomation_yaskawa-1.3.0.0/PKG-INFO +187 -0
- underautomation_yaskawa-1.3.0.0/README.md +165 -0
- underautomation_yaskawa-1.3.0.0/UnderAutomation.Yaskawa.egg-info/PKG-INFO +187 -0
- underautomation_yaskawa-1.3.0.0/UnderAutomation.Yaskawa.egg-info/SOURCES.txt +119 -0
- underautomation_yaskawa-1.3.0.0/UnderAutomation.Yaskawa.egg-info/dependency_links.txt +1 -0
- underautomation_yaskawa-1.3.0.0/UnderAutomation.Yaskawa.egg-info/requires.txt +1 -0
- underautomation_yaskawa-1.3.0.0/UnderAutomation.Yaskawa.egg-info/top_level.txt +1 -0
- underautomation_yaskawa-1.3.0.0/setup.cfg +4 -0
- underautomation_yaskawa-1.3.0.0/setup.py +37 -0
- underautomation_yaskawa-1.3.0.0/underautomation/__init__.py +0 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/__init__.py +0 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/common/__init__.py +0 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/common/high_speed_e_server_connect_parameters.py +13 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/connect_parameters.py +31 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/__init__.py +0 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/alarm_reset_type.py +8 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/arm_flip_information.py +8 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/axis_flip_information.py +8 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/control_group.py +11 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/flip_no_flip_information.py +8 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/get_file_progress.py +30 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/high_speed_e_server_client.py +13 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/internal/__init__.py +0 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_client_base.py +141 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_client_internal.py +13 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_connect_parameters_base.py +42 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/invalid_data_answer_exception.py +24 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/load_file_progress.py +36 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/management_time_type.py +17 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/on_off_command_type.py +9 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/orientation_flip_information.py +8 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/position_command_classification.py +9 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/position_command_operation_coordinate.py +10 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/position_command_type.py +9 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/regarded_reverse_position_specified.py +8 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_alarm_data.py +43 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_alarm_data_extended.py +31 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_axis_raw_data_1.py +53 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_base_position_data.py +21 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_base_position_type.py +8 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_control_group.py +28 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_data.py +12 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_data_header.py +33 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_file_content_data.py +34 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_file_list_data.py +26 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_job_data.py +37 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_management_time_data.py +25 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_plural_data_1.py +20 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_position_cartesian_data.py +75 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_position_data_1.py +41 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_position_data_type.py +11 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_posture.py +77 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_recent_alarm.py +10 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_status_data.py +97 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_system_information.py +33 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_system_type.py +9 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/robot_system_type_data.py +25 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/high_speed_e_server/switching_commands.py +9 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/lib/UnderAutomation.Yaskawa.dll +0 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/lib/version.txt +1 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/license/__init__.py +0 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/license/invalid_license_exception.py +19 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/license/license_info.py +78 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/license/license_state.py +12 -0
- underautomation_yaskawa-1.3.0.0/underautomation/yaskawa/yaskawa_robot.py +26 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: UnderAutomation.Yaskawa
|
|
3
|
+
Version: 1.3.0.0
|
|
4
|
+
Summary: Quickly create applications that communicate with your Yaskawa robots
|
|
5
|
+
Home-page: https://underautomation.com/yaskawa
|
|
6
|
+
Author: UnderAutomation
|
|
7
|
+
Author-email: support@underautomation.com
|
|
8
|
+
Project-URL: Documentation, https://underautomation.com/yaskawa/documentation/get-started-python
|
|
9
|
+
Project-URL: Source, https://github.com/underautomation/Yaskawa.py
|
|
10
|
+
Requires-Python: >=3.7
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: pythonnet==3.0.5
|
|
13
|
+
Dynamic: author
|
|
14
|
+
Dynamic: author-email
|
|
15
|
+
Dynamic: description
|
|
16
|
+
Dynamic: description-content-type
|
|
17
|
+
Dynamic: home-page
|
|
18
|
+
Dynamic: project-url
|
|
19
|
+
Dynamic: requires-dist
|
|
20
|
+
Dynamic: requires-python
|
|
21
|
+
Dynamic: summary
|
|
22
|
+
|
|
23
|
+
# Yaskawa Communication SDK for Python
|
|
24
|
+
|
|
25
|
+
[](https://underautomation.com)
|
|
26
|
+
|
|
27
|
+
[](#)
|
|
28
|
+
[](#)
|
|
29
|
+
[](https://underautomation.com/yaskawa/eula)
|
|
30
|
+
|
|
31
|
+
### 🤖 Communicate effortlessly with Yaskawa robots using Python
|
|
32
|
+
|
|
33
|
+
The **Yaskawa SDK for Python** enables real-time control and data exchange with Yaskawa Motoman robots via the **High-Speed Ethernet Server (HSES)** protocol.
|
|
34
|
+
|
|
35
|
+
Ideal for automation, research, and integration projects, it provides high-speed UDP communication, motion control, robot monitoring, job handling, and more.
|
|
36
|
+
|
|
37
|
+
🔗 **More Info:** [https://underautomation.com/yaskawa](https://underautomation.com/yaskawa)
|
|
38
|
+
🔗 Also available in **[🟦 .NET](https://github.com/underautomation/yaskawa.NET)** and **[🟨 LabVIEW](https://github.com/underautomation/yaskawa.vi)**
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
[⭐ Star the project](https://github.com/underautomation/yaskawa.py/stargazers)
|
|
43
|
+
[👁️ Watch for updates](https://github.com/underautomation/yaskawa.py/watchers)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 🚀 TL;DR
|
|
48
|
+
|
|
49
|
+
- 📡 **High-Speed Ethernet Server**
|
|
50
|
+
- 🤖 **Move robot in Cartesian or joint space**
|
|
51
|
+
- 🛠️ **Access robot status, alarms, and I/O**
|
|
52
|
+
- 💾 **Read/write registers and data types**
|
|
53
|
+
- 🧠 **Control and monitor jobs**
|
|
54
|
+
- ✍️ **Send pendant messages, reset alarms, manage files**
|
|
55
|
+
|
|
56
|
+
**No Yaskawa options or additional hardware required.**
|
|
57
|
+
|
|
58
|
+
## Try it
|
|
59
|
+
|
|
60
|
+
From Pypi (available soon) :
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
pip install UnderAutomation.UniversalRobots
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
From this repo :
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
git clone https://github.com/underautomation/Yaskawa.py.git
|
|
70
|
+
pip install pythonnet==3.0.3
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## ✨ Example Usage (Python)
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from underautomation.yaskawa.connect_parameters import ConnectParameters
|
|
79
|
+
from underautomation.yaskawa.high_speed_e_server.alarm_reset_type import AlarmResetType
|
|
80
|
+
from underautomation.yaskawa.yaskawa_robot import YaskawaRobot
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
robot = YaskawaRobot()
|
|
84
|
+
parameters = ConnectParameters("192.168.0.1")
|
|
85
|
+
parameters.ping_before_connect = True
|
|
86
|
+
|
|
87
|
+
robot.connect(parameters)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# Check connection
|
|
91
|
+
if robot.high_speed_e_server.connected:
|
|
92
|
+
print("Connected!")
|
|
93
|
+
|
|
94
|
+
# Move in Cartesian
|
|
95
|
+
robot.high_speed_e_server.move_cartesian(
|
|
96
|
+
x=1000, y=10, z=0,
|
|
97
|
+
rx=0, ry=0, rz=0,
|
|
98
|
+
speed=10,
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# Get current joint position
|
|
102
|
+
joint_position = robot.high_speed_e_server.get_robot_joint_position()
|
|
103
|
+
print(joint_position.axes)
|
|
104
|
+
|
|
105
|
+
# Read and write register
|
|
106
|
+
reg = robot.high_speed_e_server.read_register(10, count=2)
|
|
107
|
+
robot.high_speed_e_server.write_register(10, [1234, 5678])
|
|
108
|
+
|
|
109
|
+
# Reset alarm
|
|
110
|
+
robot.high_speed_e_server.alarm_reset(AlarmResetType.Reset)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 🔧 Robot Configuration (Required)
|
|
116
|
+
|
|
117
|
+
### ✅ Enable Remote Control
|
|
118
|
+
|
|
119
|
+
- `IN/OUT > PSEUDO INPUT SIGNAL`
|
|
120
|
+
- Set `#82015 CMD REMOTE SEL` via `INTERLOCK + SELECT`
|
|
121
|
+
|
|
122
|
+
### ✅ Key Position for Commands
|
|
123
|
+
|
|
124
|
+
- Use physical pendant key in remote position
|
|
125
|
+
- Optional Ladder setup: copy `#80011` to `#40042`
|
|
126
|
+
|
|
127
|
+
### ✅ Job Select
|
|
128
|
+
|
|
129
|
+
- `SETUP > FUNCTION ENABLE`
|
|
130
|
+
- Set `JOB SELECT WHEN REMOTE AND PLAY` to `PERMIT`
|
|
131
|
+
|
|
132
|
+
### ✅ File Overwrite Permissions
|
|
133
|
+
|
|
134
|
+
- `PARAMETER > RS`
|
|
135
|
+
- Set `RS029 = 1`, `RS214 = 1`
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 🛠 Installation
|
|
140
|
+
|
|
141
|
+
### 1. Clone the SDK
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
git clone https://github.com/underautomation/yaskawa.py.git
|
|
145
|
+
cd yaskawa.py
|
|
146
|
+
pip install -e .
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 2. Connect to your robot
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
robot = YaskawaRobot()
|
|
153
|
+
parameters = ConnectParameters("192.168.0.1")
|
|
154
|
+
robot.connect(parameters)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## ✅ Compatibility
|
|
160
|
+
|
|
161
|
+
- **Robots:** DX200, YRC1000, YRC1000 Micro
|
|
162
|
+
- **OS:** Windows, Linux, macOS
|
|
163
|
+
- **Python:** 3.7+
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 🙌 Contributing
|
|
168
|
+
|
|
169
|
+
We welcome contributions!
|
|
170
|
+
|
|
171
|
+
- Report bugs via [Issues](https://github.com/underautomation/yaskawa.py/issues)
|
|
172
|
+
- Submit pull requests
|
|
173
|
+
- Share feature ideas
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 📜 License
|
|
178
|
+
|
|
179
|
+
**⚠️ Commercial license required**
|
|
180
|
+
🔗 Details: [UnderAutomation Licensing](https://underautomation.com/yaskawa/eula)
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 📬 Need Help?
|
|
185
|
+
|
|
186
|
+
- 📖 [Documentation](https://underautomation.com/yaskawa/documentation)
|
|
187
|
+
- 📩 [Contact Support](https://underautomation.com/contact)
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Yaskawa Communication SDK for Python
|
|
2
|
+
|
|
3
|
+
[](https://underautomation.com)
|
|
4
|
+
|
|
5
|
+
[](#)
|
|
6
|
+
[](#)
|
|
7
|
+
[](https://underautomation.com/yaskawa/eula)
|
|
8
|
+
|
|
9
|
+
### 🤖 Communicate effortlessly with Yaskawa robots using Python
|
|
10
|
+
|
|
11
|
+
The **Yaskawa SDK for Python** enables real-time control and data exchange with Yaskawa Motoman robots via the **High-Speed Ethernet Server (HSES)** protocol.
|
|
12
|
+
|
|
13
|
+
Ideal for automation, research, and integration projects, it provides high-speed UDP communication, motion control, robot monitoring, job handling, and more.
|
|
14
|
+
|
|
15
|
+
🔗 **More Info:** [https://underautomation.com/yaskawa](https://underautomation.com/yaskawa)
|
|
16
|
+
🔗 Also available in **[🟦 .NET](https://github.com/underautomation/yaskawa.NET)** and **[🟨 LabVIEW](https://github.com/underautomation/yaskawa.vi)**
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
[⭐ Star the project](https://github.com/underautomation/yaskawa.py/stargazers)
|
|
21
|
+
[👁️ Watch for updates](https://github.com/underautomation/yaskawa.py/watchers)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 🚀 TL;DR
|
|
26
|
+
|
|
27
|
+
- 📡 **High-Speed Ethernet Server**
|
|
28
|
+
- 🤖 **Move robot in Cartesian or joint space**
|
|
29
|
+
- 🛠️ **Access robot status, alarms, and I/O**
|
|
30
|
+
- 💾 **Read/write registers and data types**
|
|
31
|
+
- 🧠 **Control and monitor jobs**
|
|
32
|
+
- ✍️ **Send pendant messages, reset alarms, manage files**
|
|
33
|
+
|
|
34
|
+
**No Yaskawa options or additional hardware required.**
|
|
35
|
+
|
|
36
|
+
## Try it
|
|
37
|
+
|
|
38
|
+
From Pypi (available soon) :
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
pip install UnderAutomation.UniversalRobots
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
From this repo :
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
git clone https://github.com/underautomation/Yaskawa.py.git
|
|
48
|
+
pip install pythonnet==3.0.3
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## ✨ Example Usage (Python)
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from underautomation.yaskawa.connect_parameters import ConnectParameters
|
|
57
|
+
from underautomation.yaskawa.high_speed_e_server.alarm_reset_type import AlarmResetType
|
|
58
|
+
from underautomation.yaskawa.yaskawa_robot import YaskawaRobot
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
robot = YaskawaRobot()
|
|
62
|
+
parameters = ConnectParameters("192.168.0.1")
|
|
63
|
+
parameters.ping_before_connect = True
|
|
64
|
+
|
|
65
|
+
robot.connect(parameters)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
# Check connection
|
|
69
|
+
if robot.high_speed_e_server.connected:
|
|
70
|
+
print("Connected!")
|
|
71
|
+
|
|
72
|
+
# Move in Cartesian
|
|
73
|
+
robot.high_speed_e_server.move_cartesian(
|
|
74
|
+
x=1000, y=10, z=0,
|
|
75
|
+
rx=0, ry=0, rz=0,
|
|
76
|
+
speed=10,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
# Get current joint position
|
|
80
|
+
joint_position = robot.high_speed_e_server.get_robot_joint_position()
|
|
81
|
+
print(joint_position.axes)
|
|
82
|
+
|
|
83
|
+
# Read and write register
|
|
84
|
+
reg = robot.high_speed_e_server.read_register(10, count=2)
|
|
85
|
+
robot.high_speed_e_server.write_register(10, [1234, 5678])
|
|
86
|
+
|
|
87
|
+
# Reset alarm
|
|
88
|
+
robot.high_speed_e_server.alarm_reset(AlarmResetType.Reset)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 🔧 Robot Configuration (Required)
|
|
94
|
+
|
|
95
|
+
### ✅ Enable Remote Control
|
|
96
|
+
|
|
97
|
+
- `IN/OUT > PSEUDO INPUT SIGNAL`
|
|
98
|
+
- Set `#82015 CMD REMOTE SEL` via `INTERLOCK + SELECT`
|
|
99
|
+
|
|
100
|
+
### ✅ Key Position for Commands
|
|
101
|
+
|
|
102
|
+
- Use physical pendant key in remote position
|
|
103
|
+
- Optional Ladder setup: copy `#80011` to `#40042`
|
|
104
|
+
|
|
105
|
+
### ✅ Job Select
|
|
106
|
+
|
|
107
|
+
- `SETUP > FUNCTION ENABLE`
|
|
108
|
+
- Set `JOB SELECT WHEN REMOTE AND PLAY` to `PERMIT`
|
|
109
|
+
|
|
110
|
+
### ✅ File Overwrite Permissions
|
|
111
|
+
|
|
112
|
+
- `PARAMETER > RS`
|
|
113
|
+
- Set `RS029 = 1`, `RS214 = 1`
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 🛠 Installation
|
|
118
|
+
|
|
119
|
+
### 1. Clone the SDK
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
git clone https://github.com/underautomation/yaskawa.py.git
|
|
123
|
+
cd yaskawa.py
|
|
124
|
+
pip install -e .
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 2. Connect to your robot
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
robot = YaskawaRobot()
|
|
131
|
+
parameters = ConnectParameters("192.168.0.1")
|
|
132
|
+
robot.connect(parameters)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## ✅ Compatibility
|
|
138
|
+
|
|
139
|
+
- **Robots:** DX200, YRC1000, YRC1000 Micro
|
|
140
|
+
- **OS:** Windows, Linux, macOS
|
|
141
|
+
- **Python:** 3.7+
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 🙌 Contributing
|
|
146
|
+
|
|
147
|
+
We welcome contributions!
|
|
148
|
+
|
|
149
|
+
- Report bugs via [Issues](https://github.com/underautomation/yaskawa.py/issues)
|
|
150
|
+
- Submit pull requests
|
|
151
|
+
- Share feature ideas
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 📜 License
|
|
156
|
+
|
|
157
|
+
**⚠️ Commercial license required**
|
|
158
|
+
🔗 Details: [UnderAutomation Licensing](https://underautomation.com/yaskawa/eula)
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 📬 Need Help?
|
|
163
|
+
|
|
164
|
+
- 📖 [Documentation](https://underautomation.com/yaskawa/documentation)
|
|
165
|
+
- 📩 [Contact Support](https://underautomation.com/contact)
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: UnderAutomation.Yaskawa
|
|
3
|
+
Version: 1.3.0.0
|
|
4
|
+
Summary: Quickly create applications that communicate with your Yaskawa robots
|
|
5
|
+
Home-page: https://underautomation.com/yaskawa
|
|
6
|
+
Author: UnderAutomation
|
|
7
|
+
Author-email: support@underautomation.com
|
|
8
|
+
Project-URL: Documentation, https://underautomation.com/yaskawa/documentation/get-started-python
|
|
9
|
+
Project-URL: Source, https://github.com/underautomation/Yaskawa.py
|
|
10
|
+
Requires-Python: >=3.7
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: pythonnet==3.0.5
|
|
13
|
+
Dynamic: author
|
|
14
|
+
Dynamic: author-email
|
|
15
|
+
Dynamic: description
|
|
16
|
+
Dynamic: description-content-type
|
|
17
|
+
Dynamic: home-page
|
|
18
|
+
Dynamic: project-url
|
|
19
|
+
Dynamic: requires-dist
|
|
20
|
+
Dynamic: requires-python
|
|
21
|
+
Dynamic: summary
|
|
22
|
+
|
|
23
|
+
# Yaskawa Communication SDK for Python
|
|
24
|
+
|
|
25
|
+
[](https://underautomation.com)
|
|
26
|
+
|
|
27
|
+
[](#)
|
|
28
|
+
[](#)
|
|
29
|
+
[](https://underautomation.com/yaskawa/eula)
|
|
30
|
+
|
|
31
|
+
### 🤖 Communicate effortlessly with Yaskawa robots using Python
|
|
32
|
+
|
|
33
|
+
The **Yaskawa SDK for Python** enables real-time control and data exchange with Yaskawa Motoman robots via the **High-Speed Ethernet Server (HSES)** protocol.
|
|
34
|
+
|
|
35
|
+
Ideal for automation, research, and integration projects, it provides high-speed UDP communication, motion control, robot monitoring, job handling, and more.
|
|
36
|
+
|
|
37
|
+
🔗 **More Info:** [https://underautomation.com/yaskawa](https://underautomation.com/yaskawa)
|
|
38
|
+
🔗 Also available in **[🟦 .NET](https://github.com/underautomation/yaskawa.NET)** and **[🟨 LabVIEW](https://github.com/underautomation/yaskawa.vi)**
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
[⭐ Star the project](https://github.com/underautomation/yaskawa.py/stargazers)
|
|
43
|
+
[👁️ Watch for updates](https://github.com/underautomation/yaskawa.py/watchers)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 🚀 TL;DR
|
|
48
|
+
|
|
49
|
+
- 📡 **High-Speed Ethernet Server**
|
|
50
|
+
- 🤖 **Move robot in Cartesian or joint space**
|
|
51
|
+
- 🛠️ **Access robot status, alarms, and I/O**
|
|
52
|
+
- 💾 **Read/write registers and data types**
|
|
53
|
+
- 🧠 **Control and monitor jobs**
|
|
54
|
+
- ✍️ **Send pendant messages, reset alarms, manage files**
|
|
55
|
+
|
|
56
|
+
**No Yaskawa options or additional hardware required.**
|
|
57
|
+
|
|
58
|
+
## Try it
|
|
59
|
+
|
|
60
|
+
From Pypi (available soon) :
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
pip install UnderAutomation.UniversalRobots
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
From this repo :
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
git clone https://github.com/underautomation/Yaskawa.py.git
|
|
70
|
+
pip install pythonnet==3.0.3
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## ✨ Example Usage (Python)
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from underautomation.yaskawa.connect_parameters import ConnectParameters
|
|
79
|
+
from underautomation.yaskawa.high_speed_e_server.alarm_reset_type import AlarmResetType
|
|
80
|
+
from underautomation.yaskawa.yaskawa_robot import YaskawaRobot
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
robot = YaskawaRobot()
|
|
84
|
+
parameters = ConnectParameters("192.168.0.1")
|
|
85
|
+
parameters.ping_before_connect = True
|
|
86
|
+
|
|
87
|
+
robot.connect(parameters)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# Check connection
|
|
91
|
+
if robot.high_speed_e_server.connected:
|
|
92
|
+
print("Connected!")
|
|
93
|
+
|
|
94
|
+
# Move in Cartesian
|
|
95
|
+
robot.high_speed_e_server.move_cartesian(
|
|
96
|
+
x=1000, y=10, z=0,
|
|
97
|
+
rx=0, ry=0, rz=0,
|
|
98
|
+
speed=10,
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
# Get current joint position
|
|
102
|
+
joint_position = robot.high_speed_e_server.get_robot_joint_position()
|
|
103
|
+
print(joint_position.axes)
|
|
104
|
+
|
|
105
|
+
# Read and write register
|
|
106
|
+
reg = robot.high_speed_e_server.read_register(10, count=2)
|
|
107
|
+
robot.high_speed_e_server.write_register(10, [1234, 5678])
|
|
108
|
+
|
|
109
|
+
# Reset alarm
|
|
110
|
+
robot.high_speed_e_server.alarm_reset(AlarmResetType.Reset)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 🔧 Robot Configuration (Required)
|
|
116
|
+
|
|
117
|
+
### ✅ Enable Remote Control
|
|
118
|
+
|
|
119
|
+
- `IN/OUT > PSEUDO INPUT SIGNAL`
|
|
120
|
+
- Set `#82015 CMD REMOTE SEL` via `INTERLOCK + SELECT`
|
|
121
|
+
|
|
122
|
+
### ✅ Key Position for Commands
|
|
123
|
+
|
|
124
|
+
- Use physical pendant key in remote position
|
|
125
|
+
- Optional Ladder setup: copy `#80011` to `#40042`
|
|
126
|
+
|
|
127
|
+
### ✅ Job Select
|
|
128
|
+
|
|
129
|
+
- `SETUP > FUNCTION ENABLE`
|
|
130
|
+
- Set `JOB SELECT WHEN REMOTE AND PLAY` to `PERMIT`
|
|
131
|
+
|
|
132
|
+
### ✅ File Overwrite Permissions
|
|
133
|
+
|
|
134
|
+
- `PARAMETER > RS`
|
|
135
|
+
- Set `RS029 = 1`, `RS214 = 1`
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 🛠 Installation
|
|
140
|
+
|
|
141
|
+
### 1. Clone the SDK
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
git clone https://github.com/underautomation/yaskawa.py.git
|
|
145
|
+
cd yaskawa.py
|
|
146
|
+
pip install -e .
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 2. Connect to your robot
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
robot = YaskawaRobot()
|
|
153
|
+
parameters = ConnectParameters("192.168.0.1")
|
|
154
|
+
robot.connect(parameters)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## ✅ Compatibility
|
|
160
|
+
|
|
161
|
+
- **Robots:** DX200, YRC1000, YRC1000 Micro
|
|
162
|
+
- **OS:** Windows, Linux, macOS
|
|
163
|
+
- **Python:** 3.7+
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 🙌 Contributing
|
|
168
|
+
|
|
169
|
+
We welcome contributions!
|
|
170
|
+
|
|
171
|
+
- Report bugs via [Issues](https://github.com/underautomation/yaskawa.py/issues)
|
|
172
|
+
- Submit pull requests
|
|
173
|
+
- Share feature ideas
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 📜 License
|
|
178
|
+
|
|
179
|
+
**⚠️ Commercial license required**
|
|
180
|
+
🔗 Details: [UnderAutomation Licensing](https://underautomation.com/yaskawa/eula)
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 📬 Need Help?
|
|
185
|
+
|
|
186
|
+
- 📖 [Documentation](https://underautomation.com/yaskawa/documentation)
|
|
187
|
+
- 📩 [Contact Support](https://underautomation.com/contact)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
setup.py
|
|
3
|
+
./underautomation/__init__.py
|
|
4
|
+
./underautomation/yaskawa/__init__.py
|
|
5
|
+
./underautomation/yaskawa/connect_parameters.py
|
|
6
|
+
./underautomation/yaskawa/yaskawa_robot.py
|
|
7
|
+
./underautomation/yaskawa/common/__init__.py
|
|
8
|
+
./underautomation/yaskawa/common/high_speed_e_server_connect_parameters.py
|
|
9
|
+
./underautomation/yaskawa/high_speed_e_server/__init__.py
|
|
10
|
+
./underautomation/yaskawa/high_speed_e_server/alarm_reset_type.py
|
|
11
|
+
./underautomation/yaskawa/high_speed_e_server/arm_flip_information.py
|
|
12
|
+
./underautomation/yaskawa/high_speed_e_server/axis_flip_information.py
|
|
13
|
+
./underautomation/yaskawa/high_speed_e_server/control_group.py
|
|
14
|
+
./underautomation/yaskawa/high_speed_e_server/flip_no_flip_information.py
|
|
15
|
+
./underautomation/yaskawa/high_speed_e_server/get_file_progress.py
|
|
16
|
+
./underautomation/yaskawa/high_speed_e_server/high_speed_e_server_client.py
|
|
17
|
+
./underautomation/yaskawa/high_speed_e_server/invalid_data_answer_exception.py
|
|
18
|
+
./underautomation/yaskawa/high_speed_e_server/load_file_progress.py
|
|
19
|
+
./underautomation/yaskawa/high_speed_e_server/management_time_type.py
|
|
20
|
+
./underautomation/yaskawa/high_speed_e_server/on_off_command_type.py
|
|
21
|
+
./underautomation/yaskawa/high_speed_e_server/orientation_flip_information.py
|
|
22
|
+
./underautomation/yaskawa/high_speed_e_server/position_command_classification.py
|
|
23
|
+
./underautomation/yaskawa/high_speed_e_server/position_command_operation_coordinate.py
|
|
24
|
+
./underautomation/yaskawa/high_speed_e_server/position_command_type.py
|
|
25
|
+
./underautomation/yaskawa/high_speed_e_server/regarded_reverse_position_specified.py
|
|
26
|
+
./underautomation/yaskawa/high_speed_e_server/robot_alarm_data.py
|
|
27
|
+
./underautomation/yaskawa/high_speed_e_server/robot_alarm_data_extended.py
|
|
28
|
+
./underautomation/yaskawa/high_speed_e_server/robot_axis_raw_data_1.py
|
|
29
|
+
./underautomation/yaskawa/high_speed_e_server/robot_base_position_data.py
|
|
30
|
+
./underautomation/yaskawa/high_speed_e_server/robot_base_position_type.py
|
|
31
|
+
./underautomation/yaskawa/high_speed_e_server/robot_control_group.py
|
|
32
|
+
./underautomation/yaskawa/high_speed_e_server/robot_data.py
|
|
33
|
+
./underautomation/yaskawa/high_speed_e_server/robot_data_header.py
|
|
34
|
+
./underautomation/yaskawa/high_speed_e_server/robot_file_content_data.py
|
|
35
|
+
./underautomation/yaskawa/high_speed_e_server/robot_file_list_data.py
|
|
36
|
+
./underautomation/yaskawa/high_speed_e_server/robot_job_data.py
|
|
37
|
+
./underautomation/yaskawa/high_speed_e_server/robot_management_time_data.py
|
|
38
|
+
./underautomation/yaskawa/high_speed_e_server/robot_plural_data_1.py
|
|
39
|
+
./underautomation/yaskawa/high_speed_e_server/robot_position_cartesian_data.py
|
|
40
|
+
./underautomation/yaskawa/high_speed_e_server/robot_position_data_1.py
|
|
41
|
+
./underautomation/yaskawa/high_speed_e_server/robot_position_data_type.py
|
|
42
|
+
./underautomation/yaskawa/high_speed_e_server/robot_posture.py
|
|
43
|
+
./underautomation/yaskawa/high_speed_e_server/robot_recent_alarm.py
|
|
44
|
+
./underautomation/yaskawa/high_speed_e_server/robot_status_data.py
|
|
45
|
+
./underautomation/yaskawa/high_speed_e_server/robot_system_information.py
|
|
46
|
+
./underautomation/yaskawa/high_speed_e_server/robot_system_type.py
|
|
47
|
+
./underautomation/yaskawa/high_speed_e_server/robot_system_type_data.py
|
|
48
|
+
./underautomation/yaskawa/high_speed_e_server/switching_commands.py
|
|
49
|
+
./underautomation/yaskawa/high_speed_e_server/internal/__init__.py
|
|
50
|
+
./underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_client_base.py
|
|
51
|
+
./underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_client_internal.py
|
|
52
|
+
./underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_connect_parameters_base.py
|
|
53
|
+
./underautomation/yaskawa/lib/UnderAutomation.Yaskawa.dll
|
|
54
|
+
./underautomation/yaskawa/lib/version.txt
|
|
55
|
+
./underautomation/yaskawa/license/__init__.py
|
|
56
|
+
./underautomation/yaskawa/license/invalid_license_exception.py
|
|
57
|
+
./underautomation/yaskawa/license/license_info.py
|
|
58
|
+
./underautomation/yaskawa/license/license_state.py
|
|
59
|
+
UnderAutomation.Yaskawa.egg-info/PKG-INFO
|
|
60
|
+
UnderAutomation.Yaskawa.egg-info/SOURCES.txt
|
|
61
|
+
UnderAutomation.Yaskawa.egg-info/dependency_links.txt
|
|
62
|
+
UnderAutomation.Yaskawa.egg-info/requires.txt
|
|
63
|
+
UnderAutomation.Yaskawa.egg-info/top_level.txt
|
|
64
|
+
underautomation/__init__.py
|
|
65
|
+
underautomation/yaskawa/__init__.py
|
|
66
|
+
underautomation/yaskawa/connect_parameters.py
|
|
67
|
+
underautomation/yaskawa/yaskawa_robot.py
|
|
68
|
+
underautomation/yaskawa/common/__init__.py
|
|
69
|
+
underautomation/yaskawa/common/high_speed_e_server_connect_parameters.py
|
|
70
|
+
underautomation/yaskawa/high_speed_e_server/__init__.py
|
|
71
|
+
underautomation/yaskawa/high_speed_e_server/alarm_reset_type.py
|
|
72
|
+
underautomation/yaskawa/high_speed_e_server/arm_flip_information.py
|
|
73
|
+
underautomation/yaskawa/high_speed_e_server/axis_flip_information.py
|
|
74
|
+
underautomation/yaskawa/high_speed_e_server/control_group.py
|
|
75
|
+
underautomation/yaskawa/high_speed_e_server/flip_no_flip_information.py
|
|
76
|
+
underautomation/yaskawa/high_speed_e_server/get_file_progress.py
|
|
77
|
+
underautomation/yaskawa/high_speed_e_server/high_speed_e_server_client.py
|
|
78
|
+
underautomation/yaskawa/high_speed_e_server/invalid_data_answer_exception.py
|
|
79
|
+
underautomation/yaskawa/high_speed_e_server/load_file_progress.py
|
|
80
|
+
underautomation/yaskawa/high_speed_e_server/management_time_type.py
|
|
81
|
+
underautomation/yaskawa/high_speed_e_server/on_off_command_type.py
|
|
82
|
+
underautomation/yaskawa/high_speed_e_server/orientation_flip_information.py
|
|
83
|
+
underautomation/yaskawa/high_speed_e_server/position_command_classification.py
|
|
84
|
+
underautomation/yaskawa/high_speed_e_server/position_command_operation_coordinate.py
|
|
85
|
+
underautomation/yaskawa/high_speed_e_server/position_command_type.py
|
|
86
|
+
underautomation/yaskawa/high_speed_e_server/regarded_reverse_position_specified.py
|
|
87
|
+
underautomation/yaskawa/high_speed_e_server/robot_alarm_data.py
|
|
88
|
+
underautomation/yaskawa/high_speed_e_server/robot_alarm_data_extended.py
|
|
89
|
+
underautomation/yaskawa/high_speed_e_server/robot_axis_raw_data_1.py
|
|
90
|
+
underautomation/yaskawa/high_speed_e_server/robot_base_position_data.py
|
|
91
|
+
underautomation/yaskawa/high_speed_e_server/robot_base_position_type.py
|
|
92
|
+
underautomation/yaskawa/high_speed_e_server/robot_control_group.py
|
|
93
|
+
underautomation/yaskawa/high_speed_e_server/robot_data.py
|
|
94
|
+
underautomation/yaskawa/high_speed_e_server/robot_data_header.py
|
|
95
|
+
underautomation/yaskawa/high_speed_e_server/robot_file_content_data.py
|
|
96
|
+
underautomation/yaskawa/high_speed_e_server/robot_file_list_data.py
|
|
97
|
+
underautomation/yaskawa/high_speed_e_server/robot_job_data.py
|
|
98
|
+
underautomation/yaskawa/high_speed_e_server/robot_management_time_data.py
|
|
99
|
+
underautomation/yaskawa/high_speed_e_server/robot_plural_data_1.py
|
|
100
|
+
underautomation/yaskawa/high_speed_e_server/robot_position_cartesian_data.py
|
|
101
|
+
underautomation/yaskawa/high_speed_e_server/robot_position_data_1.py
|
|
102
|
+
underautomation/yaskawa/high_speed_e_server/robot_position_data_type.py
|
|
103
|
+
underautomation/yaskawa/high_speed_e_server/robot_posture.py
|
|
104
|
+
underautomation/yaskawa/high_speed_e_server/robot_recent_alarm.py
|
|
105
|
+
underautomation/yaskawa/high_speed_e_server/robot_status_data.py
|
|
106
|
+
underautomation/yaskawa/high_speed_e_server/robot_system_information.py
|
|
107
|
+
underautomation/yaskawa/high_speed_e_server/robot_system_type.py
|
|
108
|
+
underautomation/yaskawa/high_speed_e_server/robot_system_type_data.py
|
|
109
|
+
underautomation/yaskawa/high_speed_e_server/switching_commands.py
|
|
110
|
+
underautomation/yaskawa/high_speed_e_server/internal/__init__.py
|
|
111
|
+
underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_client_base.py
|
|
112
|
+
underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_client_internal.py
|
|
113
|
+
underautomation/yaskawa/high_speed_e_server/internal/high_speed_e_server_connect_parameters_base.py
|
|
114
|
+
underautomation/yaskawa/lib/UnderAutomation.Yaskawa.dll
|
|
115
|
+
underautomation/yaskawa/lib/version.txt
|
|
116
|
+
underautomation/yaskawa/license/__init__.py
|
|
117
|
+
underautomation/yaskawa/license/invalid_license_exception.py
|
|
118
|
+
underautomation/yaskawa/license/license_info.py
|
|
119
|
+
underautomation/yaskawa/license/license_state.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pythonnet==3.0.5
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
underautomation
|