一、材料准备与接线参考
3)24V直流电源
4)网线
5)连接线
二、串口自定义通讯(无协议)
1.开启方法
开启自定义串口通讯需要选择port编号,默认RS232为port1,RS485为port2,使用指令将port配置为自定义串口通讯模式。
SETCOM指令除了可以配置串口的通讯基本参数外,还可以选择参数配置通讯协议,开启自串口定义通讯模式将mode=0无协议模式,填写串口基本参数和开启的port编号。
语法:SETCOM (baudrate,databits,stopbits,parity,port[,mode] [,variable] [,timeout])
开启示例:
RS232(PORT0):SETCOM (38400,8,1,0,0,0,2,1000)
RS485(PORT1):SETCOM (38400,8,1,0,1,0,2,1000)
2.读写方法
网口或串口自定义通讯采用的指令相同。
自定义通道中读取字符:GET #
自定义通道中发送字符:PRINT #、PUTCHAR #
两个指令一次只能发送一个数据,若要发送多个数据,可采用数组。PRINT #与PUTCHAR #的区别是前者发送的数据为字符串,一次只能发送一个数据,发送的数组为ASCII码;后者均为ASCII码。
(1)GET #
语法1:GET #PORT, VARIABLE
语法2:GET #PORT, ARRAY[(startindex)] [,maxchares]
语法3:charesget = GET #PORT, VARIABLE
语法4:charesget = GET #PORT, ARRAY[(startindex)] [,maxchares]
port:通道号
variable:存放的变量名
startindex:存放数组的起始地址
maxchares:存放的最多数量
语法1、2没有读取到会阻塞,这个函数一般在多任务里面进行调用。
语法3、4会返回读取到的字节数。
串口和网口的TCP通讯四种语法均可使用。
例一:读取字符
GET # 1,tempchar '从自定义串口通道1获取单个字符到tempchar
读取结果:
例二:读取到数组
GET #1,array(1),5 '一次获取最多5字符到数组,后收到的数据覆盖之前的数据
读取结果:
例三:读取到数组
CHARES=GET #1, Data, 10 '从通道1获取数据到数组,读取数据长度设为10
读取结果:
(2)PRINT #
PRINT # PORT, "字符串"
port:通道号
例一:发送字符串
PRINT # 1, tempchar '一次发送一个字符串
例二:发送数组为ASCII码
PRINT # 1, Data '一次发送一个字符串
(3)PUTCHAR #
语法1:PUTCHAR # PORT, 字符
语法2:PUTCHAR # PORT, ARRAY(index, numes)
port:通道号
index:开始输出的位置
numes:输出的字节个数, 二进制方式
例一:发送字符为ASCII码,不能直接发送字符串
PUTCHAR # 1, tempchar '一次可发送多个字符,逗号隔开
例二:发送数组为ASCII码
PUTCHAR # 1, Data '一次发送一个字符串
3.通讯例程
三、网口自定义通讯
1.开启方法
开启自定义通讯时要填入端口编号,首先要查看控制器自定义通讯的通道号,可在在线命令发送?*port打印查看,如下图,ECUSTOM为自定义网口通道。
使用网口连接上控制器之后打印的各通道状态如下,未使用的通道状态为0,已使用的通道状态为1对于串口,串口通道状态不管有没有使用始终为1。
网口自定义通讯使用OPEN #指令开启,通过此指令选择主从端。
OPEN #PORT, "mode", portnum [, ipaddress]
port:通讯通道,参见PORT描述,选择自定义网络通道。
mode:讯主从,“TCP_CLIENT”-从,“TCP_SERVER”–主。
portnum:TCP或UDP端口号, 主端为本地端口号, 从端为对方端口号。
ipaddress:对方IP地址,字符串,从端的时候要提供。
TCP在收发数据前,必须和对方建立可靠的连接,然后再传输数据,大大提高了数据通信的可靠性。
2.读写方法
读写指令与串口相同。
3.TCP通讯例程