## **Mixly FOR IOA 虚拟工厂**
### 初始化函数
**功能**:将控制器初始化为ESP23-S控制器
**说明**:库文件包含,必须添加. Arduino函数初始化,
![](https://img.kancloud.cn/1d/0c/1d0ca0062b7237b23dc04168503d676d_253x64.png)
**arduino-IDE编程函数**:
> ~~~
> #include "ZtIoa.h"
> void setup(){
> _IoaCtrl.Init(DEVICE_TYPE_S);
> }
> void loop(){
> }
> ~~~
### IO输出引脚操作
**功能**:控制单片机的IO口为输出模式,并置位为高/低电平;
![](https://img.kancloud.cn/71/6c/716c9bb7b55099452cb9d1fc1684f89f_321x45.png)
**arduino-IDE编程函数**:
> ~~~
> digital_IOA_Write(uint8_t pin,uint8_t val);
> ~~~
**说明**:参数pin为引脚号码,参数val为0/1高低电平信号;
* * *
### IO输入引脚读取操作
**功能**:将单片机IO作为输入引脚,并读取其输入状态为高/低;
**mixly编程**:
![](https://img.kancloud.cn/e9/d5/e9d5795e741d5025cfc4a716803d0690_218x46.png)
**arduino-IDE编程函数**:
> ~~~
> digital_IOA_Read(uint8_t pin);
> ~~~
**说明**:输入为引脚号,返回值为0低电平,1高电平;
### 软IO中断操作
**功能**:该组操作函数为(1)开启某IO引脚为输入状态并检测中断,(2)、当该IO引脚发生中断自动执行某函数,(3)、打开/关闭某IO引脚中断功能;
**mixly编程**:
![](https://img.kancloud.cn/be/41/be41a7688bb77411b8773b5d8bacb305_480x334.png )
**arduino-IDE编程函数**:
> ~~~
> //开启软中断
> digital_IOA_InterruptEnable(uint8_t pin); //开启pin引脚中断;
> //配置软中断函数
> //参数pin输入引脚号,IOA_AttachPinInterrupt_fun_0回调函数指针,
> //软中断触发方式参数CHANGE 突变触发、FALLING 下降沿触发,RISING上升沿触发
> digital_IOA_AttachInterrupt( uint8_t pin ,IOA_AttachPinInterrupt_fun_0,RISING);;
> //当中断响应时候,调用中断回调函数:
> void IOA_AttachPinInterrupt_fun_0() {
> //中断执行的子函数;
> };
> //关闭中断
> digital_IOA_InterruptDisable(0);//关闭该引脚中断响应;
>
> ~~~
**代码示例**
* * *
**mixly图形化程序**:
![](https://img.kancloud.cn/e0/65/e065e76ecf700b4766d13580fbe1d714_406x242.jpg)
**翻译IDE函数**:
> ~~~
> //定义中断回调函数
> void IOA_AttachPinInterrupt_fun_0() {
> Float32_Write(0,0);
> }
> void setup(){
> _IoaCtrl.Init(DEVICE_TYPE_R);
> pinMode(0, INPUT);
> digital_IOA_InterruptEnable(0);
> digital_IOA_AttachInterrupt(0,IOA_AttachPinInterrupt_fun_0,RISING);
> }
>
> ~~~
**说明**:设置引脚0为中断响应,设置为上升沿中断,当发生引脚0上升沿则执行: Float32_Write(0,0)
函数
### 模拟量输出控制
**功能**:控制单片机寄存器模拟量输出至虚拟模型,如操作速度、大小等变量控制;
**mixly编程**
![](https://img.kancloud.cn/34/32/3432d071ad85a4bf90a9aff231ce1bec_338x47.png)
**arduino-IDE编程函数**
> ~~~
> Float32_Write(0,50);
> ~~~
**说明**:设置通道寄存器float32-0输出值为50;
## 模拟量输入读取
**功能**:读取虚拟世界的模拟量反馈,如旋钮开关,坐标数据等;
**mixly编程**
![](https://img.kancloud.cn/49/65/49650f3e0b264c48bbd2a2f6d633a968_237x44.png)
**arduino-IDE编程函数**
> ~~~
> Float32_Read(0);
> ~~~
**说明**:读取通道float32-0的寄存器的值,并返回值;
## 虚拟伺服电机速度控制
**功能**:设置某M电机的转动速度值为当前值,0~100;
**mixly编程**
![](https://img.kancloud.cn/1a/61/1a6165f9ff9b8649fb918add9fe2f22f_311x51.png)
**arduino-IDE编程函数**
> ~~~
> Set_ServoSpeed(0,0);
> ~~~
**说明**:输入电机编号0~7,输入电机速度为0~100;
* * *
## 虚拟伺服电机位置控制
**功能**:设置某M电机要达到的执行位置,输入值为浮点数float32;
**mixly编程**
![](https://img.kancloud.cn/7f/5f/7f5f2674c944afc2f018db9a16f94314_322x45.png)
**arduino-IDE编程函数**
> ~~~
> Set_ServoPos(0,0);
> ~~~
**说明**:输入电机编号0~7,电机要执行达到的位置值pos(float32);
* * *
## 读取虚拟电机位置值
**功能**:读取某M电机当前的位置坐标值;
**mixly编程**
![](https://img.kancloud.cn/71/0e/710eede4418f50e3abf6dc448cc13081_221x31.png)
**arduino-IDE编程函数**
> ~~~
> Get_ServoPos(0);
> ~~~
**说明**:输入电机编号0~7,返回该电机目前虚拟位置pos的值(float32);
* * *
## 等待电机执行完成上一个动作
**功能**:阻塞线程,等待该M电机执行并达到目标位置pos点;
**mixly编程**:
![](https://img.kancloud.cn/69/83/6983c0f6a11ed149d7f504cc619cc574_244x37.png)
**arduino-IDE编程函数**:
> ~~~
> WaitFinish_ServoPos(0);
**说明**:等待电机0执行到位置点才会执行接下来的代码动作;
- IOA-更新与安装
- 软件注册与安装
- 软件使用协议
- 注册与使用
- (一)、认识IOA基础界面功能
- UI界面与设置
- 软件环境设置
- 三维导航操作
- 3D导航球使用
- 快捷键与仿真
- IOA开发工具下载汇总
- (二)、三维场景搭建
- 坐标及旋转
- 模型树与拼接
- 从SolidWorks到IOA放置的模型自制
- IOA辅助工具
- (三)、虚拟电气与调试
- (三)、虚实控制与编程
- 西门子PLC的仿真与控制
- 实体S7-1200控制器的添加
- 虚拟S7-1200控制器的添加
- 西门子PLCS7-1512控制器的添加
- 三菱PLC的仿真与控制
- 三菱PLC仿真器的使用说明
- 三菱PLC的添加与说明
- 工业机器人(纳博特)仿真
- 工业机器人(KEBA)仿真
- 工业机器人(埃夫特)仿真
- 协作机器人(遨博)仿真
- 运动控制(ZMC308)正运动仿真
- 机器视觉(VPLC516)正运动仿真
- 微型机器人(开塔)仿真
- 开塔机器人使用教程
- IOA与开塔机器人仿真
- 工业机器人(ABB)仿真
- Py-teach快速编程仿真
- Py-teach与IOA仿真
- Py-teach语法与编程
- Python编程与仿真
- Python与IOA仿真方法
- Python编程API说明
- 树莓派与IOA仿真
- EAIDK610与IOA仿真
- 单片机接入与仿真控制
- Mixly与IOA
- ArduinoIDE
- Mixly-MEGA_S虚拟工厂SDK
- Mixly-UNO_S虚拟工厂SDK
- Mixly-ESP32虚拟工厂SDK
- (四)、自定义控制器添加
- modbus-tcp自定义控制器