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-VR1-TABLE2-系统MODBUS寄存器

描述

0

VR,此时一个VR映射到一个MODBUS_REG

VR32位浮点型,REG16位整数型,从VR传递数据给REG会丢失小数部分,当VR数据超过正负15位时,REG数据会改变

REG传递数据给VR不会有问题

1

TABLE,此时一个TABLE数据映射到一个MODBUS_REG(不推荐)

TABLE32位浮点型,REG16位整数型,从TABLE传递数据给REG会丢失小数部分,当TABLE数据超过正负15位时,REG数据会改变

REG传递数据给TABLE不会有问题

2(缺省)

系统MODBUS寄存器,此时VRMODBUS寄存器是两片独立区间

3

VR_INT模式,此时一个VR_INT映射到两个MODBUS_REG

timeoutmode=14时为消息超时时间,毫秒单位,缺省值1000

 

variable参数是全局的设置,所有的端口共一个。

当设置为VRTABLE时,没有用到的输出口与输入口会连在一起。

当设置为VRTABLE时,通用输出口会映射到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)       '设置串口0modbus从端,波特率38400

SETCOM(38400,8,1,0,1,14,2,1000)   设置串口1modbus主端,波特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)           '打印结果为100VR已经映射到REG,但是REG是整型,所以小数部分丢失

MODBUS_REG(0)=200        'REG(0)设为200

?VR(0)                      '打印结果为 200REG变化也会改变VR

 

例五 寄存器模式2

VR(0)=0                     '初始化VR(0)REG(0)0

MODBUS_REG(0)=0

SETCOM(38400,8,1,0,0,4,2)    '设置VRMODBUS_REG独立

VR(0)=100.345               设置VR(0)=100.345

?MODBUS_REG(0)           '打印结果为 0VR不影响REG

MODBUS_REG(0)=200        'REG(0)设为200

?VR(0)                      '打印结果为 100.345REG也不影响VR

相关指令

ADDRESSPROTOCOLMODBUSM_DESPORT