### SETCOM -- 串口配置

类型 | 系统指令
描述 | 串口的配置。 控制器重新上电后，SETCOM 参数会还原成默认值，所以请在程序开头写 SETCOM 设置。 ZMC00x 系列不支持 MODBUS 主端。
语法 | SETCOM (baudrate,databits,stopbits,parity,port[,mode] [,variable] [,timeout]) baudrate：串口波特率 9600 19200 4800 115200 38400(缺省) 57600 128000 256000 databits：数据位数 8 stopbits：停止位，只能设置 0/1/2 parity：是否校验：
值 | 描述
0（缺省） | 无校验
1 | 奇校验
2 | 偶校验
port：串口 PORT 编号 0-1，参见 PORT 描述，不同的控制器不一样 mode：协议
值 | 描述
0 | RAW 数据模式，无协议，此时可以使用 GET #，PRITNT #
4（缺省） | MODBUS 从端（16 位整数）
14 | MODBUS 主端（16 位整数)
15 | 直接命令执行模式，此时可以直接从串口输入字符串命令(换行符结束)
variable：寄存器选择，0-VR，1-TABLE，2-系统 MODBUS 寄存器
值 | 描述
0 | VR，此时一个 VR 映射到一个 MODBUS_REG VR 是 32 位浮点型，REG 是 16 位整数型，从 VR 传递数据给 REG 会丢失小数部分，当 VR 数据超过正负 15 位时，REG 数据会改变 REG 传递数据给 VR 不会有问题
1 | TABLE，此时一个 TABLE 数据映射到一个 MODBUS_REG（不推荐） TABLE 是 32 位浮点型，REG 是 16 位整数型，从 TABLE 传递数据给 REG 会丢失小数部分，当 TABLE 数据超过正负 15 位时，REG 数据会改变 REG 传递数据给 TABLE 不会有问题
2（缺省） | 系统 MODBUS 寄存器，此时 VR 与 MODBUS 寄存器是两片独立区间
3 | VR_INT 模式，此时一个 VR_INT 映射到两个 MODBUS_REG
timeout：mode=14 时为消息超时时间，毫秒单位，缺省值 1000。 variable 参数是全局的设置，所有的端口共一个。 当设置为 VR 或 TABLE 时，没有用到的输出口与输入口会连在一起。 当设置为 VR 或 TABLE 时，通用输出口会映射到 MODBUS_BIT(0)的位置，输入口会映射到 MODBUS_BIT(1000)的位置，因此此时不要使用 MODBUS_BIT 作为触摸屏的按钮。
适用控制器 | 通用
例子 | 例一 mode0 RAW 模式 DIM char1 '定义变量 SETCOM(38400,8,1,0,0,0) '配置串口为 RAW 模式 WHILE 1 GET #0, char1 '发送给通道 0 的字符保存到 char1 PRINT char1 '按 ASCII 码打印通道 0 接受的字符 PUTCHAR #0, char1 '将接收的字符再发送回去 WEND 松下 A6 伺服编码器读取参照第十三章简易例程 例二 MODBUS 通讯设置 SETCOM(38400,8,1,0,0,4,2) '设置串口 0 为 modbus 从端，波特率 38400 SETCOM(38400,8,1,0,1,14,2,1000) 设置串口 1 为 modbus 主端，波特率 38400 具体例程参照 MODBUSM_DES 指令例程 例三 直接字符命令方式 setcom(38400, 8,1,0,0,15) '设置串口 0 为直接字符串命令方式 此时在串口调试助手或其他设备，直接发送相关指令可直接操作控制器。 发送前 UNITS=10000 发送后 UNITS=100 一定要换行发送，否则控制器报错 例四 寄存器模式 0 VR(0)=0 '初始化 VR(0)和 REG(0)为 0 MODBUS_REG(0)=0 SETCOM(38400, 8,1,0,0,4,0) '设置 VR 映射到 MODBUS_REG VR(0)=100.345 '设置 VR(0)=100.345 ?MODBUS_REG(0) '打印结果为 100，VR 已经映射到 REG，但是 REG 是整型，所以小数部分丢失 MODBUS_REG(0)=200 'REG(0)设为 200 ?VR(0) '打印结果为 200，REG 变化也会改变 VR 例五 寄存器模式 2 VR(0)=0 '初始化 VR(0)和 REG(0)为 0 MODBUS_REG(0)=0 SETCOM(38400,8,1,0,0,4,2) '设置 VR 与 MODBUS_REG 独立 VR(0)=100.345 设置 VR(0)=100.345 ?MODBUS_REG(0) '打印结果为 0，VR 不影响 REG MODBUS_REG(0)=200 'REG(0)设为 200 ?VR(0) '打印结果为 100.345，REG 也不影响 VR
相关指令 | ADDRESS，PROTOCOL，MODBUS M_DES，PORT