# 虚拟控制器 API 说明
## 使用示例
```
controller = Controller()
while True:
controller.DigitalWrite(0,1)
print("DI0's value is : " + str(controller.DigitalRead(0)))
controller.Float32Write(0, 2.3)
print("FI0's value is : " + str(controller.Float32Read(0)))
controller.MotorMoveAngle(0,320)
controller.MotorWaitFinish(0)
time.sleep(1)
controller.DigitalWrite(0,0)
print("DI0's value is : " + str(controller.DigitalRead(0)))
controller.Float32Write(0, 0.2)
print("FI0's value is : " + str(controller.Float32Read(0)))
controller.MotorMoveAngle(0,300)
controller.MotorWaitFinish(0)
time.sleep(1)
```
## Controller(id = 1, host="127.0.0.1", port=502, type = "ROBOT\_M8")
* [ ] - 说明:创建新的虚拟控制器
* [ ] - 示例:
>
> controller = Controller()
>
> 创建一个新的虚拟控制器,并将其命名为 controller
* [ ] - 参数:
>
> id 控制器ID 默认值为1
>
> host 控制器IP地址 默认为本机 127.0.0.1
>
> port 控制器端口号 默认为9999
>
> type 控制器类型 默认为 ROBOT\_M8 , 暂不支持其他类型
>
## DigitalWrite(pin, val)
* [ ] - 说明:向虚拟控制器的 DO 管脚设置新的值
* [ ] - 示例:
>
> controller.DigitalWrite(0, 1)
>
> 设置虚拟控制器的 DO0 管脚值为1
* [ ] - 参数:
>
> pin DO 管脚号
>
> val 要设置的新值
## Float32Write(pin, val)
* [ ] - 说明:向虚拟控制器的 FO 管脚设置新的值
* [ ] - 示例:
>
> controller.Float32Write(0, 2.3)
>
> 设置虚拟控制器的 FO0 管脚值为2.3
* [ ] - 参数:
>
> pin FO 管脚号
>
> val 要设置的新值
## DigitalRead(pin)
* [ ] - 说明:读取虚拟控制器的 DI 管脚当前电平信息
* [ ] - 示例:
>
> value = controller.DigitalRead(0)
>
> 读取虚拟控制器的 DI0 管脚信息,并将值赋值给 value 变量
* [ ] - 参数:
>
> pin DI 管脚号
## Float32Read(pin)
* [ ] - 说明:读取虚拟控制器的 FI 管脚当前电平信息
* [ ] - 示例:
>
> value = controller.Float32Read(0)
>
> 读取虚拟控制器的 FI0 管脚信息,并将值赋值给 value 变量
* [ ] - 参数:
>
> pin DI 管脚号
>
## MotorMoveAngle(motor, pos, speed=5)
* [ ] - 说明:控制虚拟控制器的伺服电机运动到指定位置
* [ ] - 示例:
>
> controller.MotorMoveAngle(0, 90, 20)
>
> 让虚拟控制器的 M0 电机,移动到 90 位置,运动速度为20
* [ ] - 参数:
>
> motor 伺服电机编号
>
> pos 要移动到的位置
>
> speed 移动速度,默认值为5
## MotorReadAngle(motor)
* [ ] - 读取虚拟控制器的电机当前位置
* [ ] - 示例:
>
> position = controller.MotorReadAngle(0)
>
> 读取虚拟控制器伺服电机 M0 的当前位置,并将位置信息赋值给 position 变量
* [ ] - 参数:
>
> motor 伺服电机编号
## MotorWaitFinish(motor)
* [ ] - 等待虚拟控制器的某个伺服电机运动完成
* [ ] - 示例:
>
> controller.MotorWaitFinish(0)
>
> 等待 M0 电机运行结束
* [ ] - 参数:
>
> motor 伺服电机编号
- 欢迎使用IOA数字孪生
- IOA-更新与安装
- 软件注册与安装
- 软件使用协议
- 注册与使用
- (一)、认识IOA基础界面功能
- UI界面与设置
- 软件环境设置
- 三维导航操作
- 3D导航球使用
- 快捷键与仿真
- (二)、三维场景搭建
- 3D设计视频教程
- 坐标及旋转
- 模型参数设置
- 模型树与拼接
- 从SolidWorks到IOA放置的模型自制
- IOA辅助工具
- (三)、虚拟电气与调试
- 虚拟电气信号归类
- 虚拟接线与导出
- (三)、虚实控制与编程
- 西门子PLC的仿真与控制
- 西门子实体PLCS7-1214控制器的添加与控制
- 西门子虚拟PLCS7-1214控制器的添加
- 西门子PLCS7-1512控制器的添加
- 三菱PLC的仿真与控制
- 三菱PLC仿真器的使用说明
- 三菱PLC的添加与说明
- 工业机器人(纳博特)仿真
- 工业机器人(KEBA)仿真
- 工业机器人(埃夫特)仿真
- 协作机器人(遨博)仿真
- 运动控制(ZMC308)正运动仿真
- 机器视觉(VPLC516)正运动仿真
- 微型机器人(开塔)仿真
- Py-teach快速编程仿真
- 人工智能视觉仿真
- 单片机接入与仿真控制
- Mixly-UNO_S虚拟工厂SDK
- Mixly-MEGA_S虚拟工厂SDK
- Mixly-ESP32虚拟工厂SDK
- 树莓派与Python仿真
- (四)、自定义控制器添加
- modbus-tcp自定义控制器
- (五)、Py-teach模块化编程示教
- Py-teach软件使用
- 语法与编程
- py-teach快速编程在线教程
- (六)、SDK与二次开发
- modbus-tcp自定义控制器SDK
- 机器视觉开发SDK
- EAIDK-610固件烧录手册
- EAIDK-610快速上手手册
- EAIDK-610案例使用手册
- (七)、快速上手案例教程
- 西门子PLC虚实仿真公开课
- 纳博特工业机器人虚实仿真
- 三菱PLC虚实仿真
- (八)、XR多人互动
- (九)、问题归总
- (十)、IOA硬件虚实仿真导航
- IOA虚实控制器及案例下载
- 虚实控制器资源包
- 机器视觉与人工智能