欧姆龙CPU自带232口与第三方设备通信实验
- 格式:doc
- 大小:1.74 MB
- 文档页数:20
计算机网络实验————实现RS232串口通信程序及MODBUS协议的编程一.实验目的:1.熟悉并掌握RS232串口标准及原理。
2.实现PC机通过RS232串口进行数据的收发。
3.掌握MODBUS协议。
4. 掌握MODBUS协议编程的编写二、实验设备PC机一台,RS232串口通信线〔9针〕一条,跳线一个〔一台PC实验时,将其中的2和3短接〕三、实验内容界面内容:〔1〕翻开串口与关闭串口按钮〔2〕信息发送区:信息编辑区,发送信息按钮〔3〕信息接受区:信息显示区,接收信息按钮四、实验原理rs-232-c :RS-232C标准〔协议〕的全称是EIA-RS-232C标准,其中EIA(Electronic Industry �RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。
这里只介绍EIA�RS-232-C〔简称232,RS232〕。
例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。
RS232原理如图1-3。
图1 RS232接口电缆和引脚外观图2 RS232 引脚定义〔DB9〕RS232接口硬件握手方式1 概述在现代的各种实时监控系统和通信系统中,在Windows 9X/NT下利用VC++对RS-232串口编程是常用的手段。
Windows 同时还可以建立其他的线程。
线程是操作系统分配CPU时间的根本实体,每个线程占用的CPU时间由系统分配,系统不停的在线程之间切换。
进程中的线程共享进程的虚拟地址空间,可以访问进程的资源,处于并行执行状态,这就是多线程的根本概念。
2 VC++对多线程的支持3 多线程在串口通信中的应用3.1 串口通信对线程同步的要求因为同一进程的所有线程共享进程的虚拟地址空间,而在Windows串口通信中,对于每个串口对象,只有一个缓冲区,发送和接收都要用到,必须建立起同步机制,使得在一个时候只能进行一种操作,否那么通信就会出错。
OMRON PLC不能与TP177B/DP的触摸屏进行通信,
但可以与TP177A/DP等的屏通信???(已经反复试验过)
通讯的具体设置注意事项:
(1)所有通讯设置(HMI和PLC)都要保持一致(站号、波特率、奇偶较验等,
此处使用默认值即:"9600、7、Even/偶、2");
(2)CPU-42H中的4脚应拨到"ON"位置,即PRPHL为Setup,非Auto;
(3)网络类型选择"SYSMAC WAY",同时网络设置中的驱动采用:
"COM1、9600;7、Even、2"标准;
(4)最关键的是PLC要在"Monitor"模式下才能正常通讯;
(5)只有在编程模式才可以传送设置到PLC中去;
(6)OMRON RS422(CJ1W-CIF11)扩展模块的1至4脚设置成"OFF",
5至6脚设置成"ON";
(7)无特别要求时,通常默认设置是最佳的设置;
西门子触摸屏与欧姆龙PLC通讯线的连接方法(RS-422A/CJ1W-CIF11)
HMI PLC
8 RDA-
3 RDB+
9 SDA-
4 SDB+
其中:"RDA-"与"RDB+"之间要并接一个220欧姆/2W的标准电阻。
欧姆龙PLC网口通讯案例伴随着工业自动化的发展,PLC(可编程逻辑控制器)已经成为了工业控制领域的重要设备。
而在PLC的众多品牌中,欧姆龙PLC凭借着其可靠性和先进的功能,在工业自动化领域中备受推崇。
本文将就欧姆龙PLC的网口通讯案例进行探讨。
首先,我们先来了解一下欧姆龙PLC的网口通讯功能。
欧姆龙PLC内置有以太网接口,可以通过网线连接到工业网络中,实现与上位机、其他设备的通讯。
通过这种方式,可以方便地实现数据的采集、监控与控制,提高工业自动化系统的效率。
第一个案例是关于生产线上的温度监控。
某工厂的生产线上有数十个温度传感器,需要实时监控各个传感器的温度数值,并且将这些数据发送给中央监控室。
为了解决这个问题,这个工厂选择了欧姆龙PLC作为控制器,并利用其网口通讯功能。
他们通过编写PLC的程序,实现了对所有温度传感器的数据采集和处理,并且通过网口将这些数据发送给中央监控室的电脑。
这样,工作人员可以通过电脑随时查看各个传感器的温度情况,及时发现异常并采取相应措施,从而提高了生产线的安全性和稳定性。
第二个案例是关于物料输送系统的控制。
某公司的物料输送系统包含多个输送带和电机,它们需要协同工作以实现物料的高效输送。
为了控制这个系统,该公司选择了欧姆龙PLC,并利用其网口通讯功能来实现对输送带和电机的远程监控和控制。
在该系统中,每个输送带和电机都连接着一个PLC模块,并且通过网口与中央控制室的PLC进行通讯。
通过这种方式,中央控制室的操作员可以方便地监控每个输送带和电机的运行状态,并根据需要远程调整其运行参数,实现了对物料输送系统的集中控制。
第三个案例是关于能源管理的控制。
某大型建筑物需要对其能源的使用进行合理管理,以节约能源和降低成本。
为了实现这个目标,该建筑物的管理者选择了欧姆龙PLC,并利用其网口通讯功能来实时监控各个区域的能源使用情况。
他们通过将各个区域的能耗数据接入PLC,并通过网口发送给中央控制室的电脑。
MCU实验6 UART通信接口--RS232通信实验UCAxCTL1 Register,USCI_Ax Control Register 1(bit7-0)bit7-6 UCSSELx USCI clock source select. These bits select the BRCLK source clock.00b = UCAxCLK(external USCI clock)(default)01b = ACLK10b = SMCLK11b = SMCLKbit5 UCRXEIE Receive erroneous-character interrupt enable0b = Erroneous characters rejected and UCRXIFG is not set.(default)1b = Erroneous characters received set UCRXIFG.bit4 UCBRKIE Receive break character interrupt enable0b = Received break characters do not set UCRXIFG.(default)1b = Received break characters set UCRXIFGbit3 UCDORM Dormant. Puts USCI into sleep mode.0b = Not dormant. All received characters set UCRXIFG.(default)1b = Dormant. Only characters that are preceded by an idle-line or withaddress bit set UCRXIFG. In UART mode with automatic baud-rate detection,only the combination of a break and synch field sets UCRXIFG.bit0 UCSWRST Software reset enable0b = Disabled. USCI reset released for operation.1b = Enabled. USCI logic held in reset state.(default)UCAxBR0 Register,USCI_Ax Baud Rate Control Register 0(bit7-0)bit7-0 UCBRx Low byte of clock prescaler setting of the baud-rate generator. The 16-bit value of (UCAxBR0 + UCAxBR1 × 256) forms the prescaler value UCBRx.UCAxBR1 Register,USCI_Ax Baud Rate Control Register 1(bit7-0)bit7-0 UCBRx High byte of clock prescaler setting of the baud-rate generator. The 16-bit value of (UCAxBR0 + UCAxBR1 × 256) forms the prescaler value UCBRx.UCAxMCTL Register,USCI_Ax Modulation Control Register(bit7-0)bit7-4 UCBRFx First modulation stage select. These bits determine the modulation pattern for BITCLK16 when UCOS16 = 1. Ignored with UCOS16 = 0bit3-1 UCBRSx Second modulation stage select. These bits determine the modulation pattern for BITCLK.bit0 UCOS16 Oversampling mode enabled0b = Disabled(default)1b = EnabledUCAxIE Register,USCI_Ax Interrupt Enable Registerbit1 UCTXIE Transmit interrupt enable0b = Interrupt disabled(default)1b = Interrupt enabledbit0 UCRXIE Receive interrupt enable0b = Interrupt disabled(default)1b = Interrupt enabled根据UCA1MCTL = UCBRF_0 + UCBRS_3; 要求学生将波特率改成1200 baud。
欧姆龙PLC通讯问题汇总解析本文对欧姆龙PLC在通讯时出现的各种问题进行了详细介绍,供参考。
1.Cx-ProgrammerV5.0与PLC通信不稳定:电脑与PLC的连接方式:电脑USB口(该电脑没有RS232串口)←→[USB转RS232电缆的USB插头←→USB转RS232电缆线(电脑已经安装驱动,且默认的COM4端口已经设置为COM1)中间部分←→USB转RS232电缆的RS232公头]←→[[电脑与PLC的连接电缆的RS232母头←→电脑与PLC的连接电缆线的中间部分←→电脑与PLC的连接电缆的RS232公头]]←→PLC的RS232母头。
上面单中括号内为USB转RS232电缆,双中括号内为电脑与PLC 的连接电缆。
电脑与PLC的连接电缆接线如下:(1).公头(用以连接PLC)的2、3、9分别与母头的2、3、5(用于连接电脑或USB转RS232连接线)短接,这是欧姆龙官方的连接方法;(2).公头和母头的2-2、3-3、5-5分别短接,这是RS232连接线的常规连接方法。
后来经过实践证明:上面2种电脑和PLC的连接电缆都可以使用。
第1种电缆通信稳定可靠。
对于第2种电缆,当电脑和PLC之间通过VC应用程序进行通信时效果不好,容易丢帧(用串口调试助手可以看到),只有当电脑和PLC共用电源(共地)时才没有发现问题。
所以,请尽量采用第1种连接电缆。
有时间电脑和PLC能正常通信,有时间却不行——显示“Modem已经被选中,要继续码?”故障(实际上“码”应当为“吗”),一旦出现该故障信息,就一定会出现以下故障信息:当通信不上时,笔者采用过克隆回以前的正常操作系统、重新安装Cx-ProgrammerV5.0编程软件等方法,又可以正常通信了,但一旦断线后又可能通信不上了。
有几次还发现,有些程序可以和PLC通信上,而有些程序却不行!因此,笔者就将可以通信的PLC程序先备份,然后全部删除程序中的指令,最后将目标程序的指令全部复制过来(复制时注释可以自动复制过来),这样居然电脑就可以正常和PLC进行通信了!但是——下一次这个程序可能又无法正常通信了!郁闷……根据通信错误信息“Modem已经被选中,要继续码?”,笔者找到了解决方法:在桌面上右击“我的电脑”,再点击“属性”——“硬件”——“设备管理器”,再双击“调制解调器”,再右击展开的调制解调器型号,点击“停用”就可以了。
欧姆龙PLC与西门子TCP通讯一、欧姆龙plc的设置1、IP地址的设置通过拨码盘来设定耦合器的IP地址,IP地址的设定规章如下:NX-EIC202 的拨码设置:NX-EIC202 的IP 地址设置:通过拨码设置,节点号拨03,4号拨码OFF,表示IP 为:192.168.250.3(详见EIC202 的IP 地址设置)2、端口号的设置首先打开Network Configurator软件。
插入1个NX-EIC202以太网耦合模块设置耦合器的端口号。
设置要连接设备的IP地址选择与耦合器的通讯接口为Ethernet I/F。
连接耦合器8、选择与耦合器相连的设备(本地电脑的IP)9、下载程序到耦合器至此欧姆龙plc的IP地址和端口号配置完成。
3、欧姆龙Sysmac Studio中配置硬件组态和曝光变量首先组态欧姆龙PLC的硬件。
设置平安模块的输入输出形式,并添加通道解释。
建立全局变量,包含硬件通道的变量和需要使用的中间变量。
在I/O映射中将硬件通道和全局变量进行对应。
在曝光变量中建立要和西门子plc进行交互的信号点。
至此欧姆龙PLC的全部设定就完成了。
二、西门子PLC的配置1、在设备视图中建立2个TCP联接。
2、欧姆龙PLC和西门子PLC的通讯格式(1)西门子写入到欧姆龙PLC:西门子发送字节如下:01 10 00 00 0E 00 00 10 04 00 94 00 03 00 00 00 00 00 00 00所建立的曝光输入变量的长度(橙色字体)+前8个字节的固定长度,要与设定的变量长度(红色字体)大小全都,0E表示8+6=14(E),其中8为发送字节前的固定长度,6为发送数据的长度(橙色部分)。
建立的输入变量长度看I/O安排,如下图所示。
(2)西门子从欧姆龙读取数据当平安PLC组成为NX-EIC202耦合+SL3300+SID800*4+SOD400*2发送:011000000800000E040064000300接收欧姆龙PLC曝光变量:接收:01 10 28 00 00 8e 00 00 00 80 0f 00 01 00 00 00 00 00 00 00 00 00 00 00 00 07 ff 00 00 07 ff 00 00 07 ff 00 00 07 ff 00 70 0f 70 0f其中,灰色为固定返回格式,无意义,红色部分为CPU中的曝光变量的输出部分,橙色为4个输入模块的输入通道状态部分,其中1个模块的格式为00 07 ff 00,绿色部分为2片输出模块的输出通道状态,其中1个模块的格式为70 0f。
PLC与电脑的通讯线焊接手顺PLC与电脑的通讯线就我已知有三种,分别是USB线、串口线和网线。
USB线的焊接不说了,就讲解串口线和网线的焊接。
串口线是PC到PLC的RS-232通讯线。
其接口接线情况如下图所示:PLC与PC之间无协议通讯通过通讯串口RS-232进行连接,笔记本电脑没有232串口,需用RS-232转USB进行连接。
新建PLC选择CJ2M-CPU35,点击在线工作,上传I\O表。
然后从右边选择I\O表和单元设置。
点击主机架选择CJIW-SCU41-V1修改单元参数,先修改显示数据组然后修改项目中的Ppart2:port settings的设定值为usersettings,之后点击确定传送。
PLC通讯设置完成,然后保持电脑与PLC通讯一致,即通讯线完成,即可连接。
、网线的通讯连接及焊接。
网线的连接方式是按照橙白橙、绿白蓝、蓝白绿、灰白灰颜色线依次连接,然后用网线压线钳压好即可。
下面是网线通讯流程。
点击新PLC1【CJ2M】变更PLC点击显示所有,选择网络类型Ethernet\IP点击设定进行详细修改,进行IP地址设定,保持与电脑IP不一样。
但是再设定之前要查找PLC是否存在IP地址。
先用USB线连接,然后自动在线,点击IO表和单元设置,再点击从PLC传送IO表点击内置端口,然后双击下面的CJ2M即现有IP为192.168.1.51,然后换用网线,进行设定。
修改为192.168.1.51点击确定选择自动在线,如果连接成功,即可。
如果连接不成功,接着做下一步修改电脑IP确定,然后在线连接即可。
还有一种情况,假如PLC里没有程序,也就是没有IP地址,我们就要用USB线下载新的IP地址,点击IO表和单元设置,然后点击内置端口\插入版。
选择CJ2M-EIP21,修改IP地址然后点击下方的传送PC到单元T,点击确定,换回网线进行下一步操作。
接下来的的操作流程和第一种情况一样,往下做即可。
PLC 通訊設置
1.打開PLC 程式,在與PLC無法連線的情況下,請注意以下倆個設定是否統一。
在上圖中,設定打開——通訊埠打開———通訊設定(選擇標準或自定義等參數設定)
在上圖中,PLC打開———網絡模型設定打開———設備選擇(通訊埠和波率等參數設定)1.DIP開關設定
1.寫保護
ON 用戶程序,只讀DM(DM6144到DM6568)和PC設置(DM6600到DM6655)不
能從編程設備寫入。
OFF 能夠從編程設備寫入用戶程式,只讀DM(DM6144到DM6600)和(DM6600到DM6655)
2.從內存盒自動傳出
3.手握編程器顯示語言
4.擴展指令設定
5.串行通信端口設定
ON CPU單元上的外圍端口和RS-232端口由標準設定控制(上位機連接,1起始位,偶較位,7位數字,2停止位,9600bps)
但7設為OFF,側這個設置與外圍端口無關。
OFF 外圍端口由PC設置(DM6650到DM6654)控制,RS-232C端口由PC設置(DM6645到DM6649)控制。
6.用戶決定的設定
7.連接到外圍端口的設備
8.CX-協議容許。
欧姆龙PLC与三菱Q系列PLC协议宏通信目录1 三菱Q系列PLC通信协议 (1)1.1 MC协议概述 (1)1.2 QnA兼容3C帧通信格式 (2)1.2.1 数据通信的基本格式 (3)1.2.2 QnA兼容3C帧格式,用格式1进行通信时 (3)1.2.3 QnA兼容3C帧格式,用格式2进行通信时 (5)1.2.4 QnA兼容3C帧格式,用格式3进行通信时 (7)1.2.5 QnA兼容3C帧格式,用格式4进行通信时 (9)1.2.6 帧格式中各个项目的说明 (11)1.2.7 命令及响应字符部分说明 (13)2 欧姆龙协议宏与三菱Q系列PLC协议宏通信实验 (18)2.1 实验准备 (18)2.2 通信电缆接线 (18)2.3 PLC通信参数设置 (20)2.3.1 欧姆龙SCU模块通信参数设置 (20)2.3.2 三菱C24通信模块通信参数设置 (20)2.4 串口调试工具测试 (24)2.5 协议宏程序编写 (25)2.6 监视通信状态——Trace功能 (30)1 三菱Q系列PLC通信协议1.1 MC协议概述三菱的Q系列PLC采用列MELSEC通讯协议,即MC协议。
所谓MC通讯协议就是对方设备通过Q系列C24或者Q 系列E71来进行PLC CPU软元件数据和程序的读出/写入的Q系列PLC用的通讯方式的名称。
MC协议采用帧的形式进行通讯,它包括以下几种帧格式:串行通信模块C24模块:A兼容1C帧,包括1-4种格式QnA兼容2C帧,包括1-4种格式;QnA兼容3C帧,包括1-4种格式;QnA兼容4C帧,包括1-5种格式;说明:格式5,用于采用二进制代码的通信如果以格式1为基准来考虑采用ASCII代码的4种通信格式就有如下不同:格式2:各文件上附加了编号的格式;格式3:用STX ETX 包围各文件的格式;格式4:各文件上附加了CR LF 的格式;详情请参考QnA兼容3C帧格式1~格式3的说明。
以太网通信模块E71:A兼容1E帧;QnA兼容3E帧。
R S232串口通信实验(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验名称:RS-232串口通信实验实验目的:利用单片机的TXD、RXD口,学会单片机串行口的使用。
实验原理:1、51单片机内置全双工异步串行口,共有4种工作方式,电原理图如下:2、串行通信的编程:(1)串行口控制寄存器SCON(2)SM0、SM1—串行口工作方式选择位SM0 SM1 方式功能说明0 0 0 同步移位寄存器方式(用于扩展I/O口)0 1 1 8位异步收发,波特率可变(由定时器控制)1 02 9位异步收发,波特率为fosc/64或fosc/321 1 3 9位异步收发,波特率可变(由定时器控制)(3)REN—允许串行接收位该控制为由软件置“1”或清“0”。
REN=1 允许串行口接收数据。
REN=0 禁止串行口接收数据。
(4)TB8—发送的第9位数据方式2和3时,TB8是要发送的第9位数据,可作为奇偶校验位使用,也可作为其他标志。
(例:在多机通讯中,可以标注传输内容为地址或数据) RB8—接收到的第9位数据方式2和3时,RB8存放接收到的第9位数据。
在方式1,如果SM2=0,RB8是接收到的停止位。
在方式0,不使用RB8。
(5)TI——发送中断标志位方式0时,串行发送第8位数据结束时由硬件置“1”,其它工作方式,串行口发送停止位的开始时置“1”。
TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。
CPU响应中断后, 向SBUF写入要发送的下一帧数据。
TI必须由软件清0。
RI——接收中断标志位方式0时,接收完第8位数据时,RI由硬件置1。
其它工作方式,串行接收到停止位时,该位置“1”。
RI=1,表示一帧数据接收完毕,并申请中断, CPU从接收SBUF取走数据。
该位状态也可软件查询。
RI必须由软件清“0”。
(6)特殊功能寄存器PCONSMOD:波特率倍增位方式0,波特率=fosc/12方式2,波特率= fosc*2SMOD/64方式1、3,波特率=定时器T1的溢出频率*2SMOD/643、多机通讯:主机传输的信息包括地址+数据,每个从机根据自己的地址来判断是否参与通讯SM2 —多机通信控制位用于方式2或方式3中的多机通信控制。
欧亚集团会员卡章程 页脚内容1 编号:20150822
实验报告
课题名称:欧姆龙CPU自带232口和第三方设备通信实验 单位(盖章): 技术部 实验时间: 欧亚集团会员卡章程
页脚内容2 目录 实验目的:.......................................................... 3 实验设备:.......................................................... 3 实验流程:.......................................................... 4 实验步骤:.......................................................... 4 一、硬件电路搭建............................................ 4 二、软件设置................................................ 6 三、无协议收发功能的测试。.................................. 8 四、第三方设备协议分析..................................... 11 五、CS1D-CPU67S读取仪表动态数据实例。 ..................... 12 六、FCS(帧校验和)指令的使用。............................ 15 七、通过CPU计算校验码获取SWP数据......................... 17 八、结论................................................... 19 注意:..................................................... 19 欧亚集团会员卡章程
页脚内容3 欧姆龙CPU自带232口和第三方设备通信实验 实验目的: 了解欧姆龙PLC CPU自带RS232口和第三方设备的通信。本实验以欧姆龙PLC CS1D-CPU67S和昌辉SWP系列仪表为例进行测试。
实验设备: 本次实验设备见表1。 序号 名称 型号 数量 备注 1 CPU CS1D-CPU67S 1 2 电源模块 CS1D-PA207R 1 3 主底板 CS1D-BC082S 1 4 以太网模块 CS1W-EIP21 1 5 昌辉仪表 SWP-C403-22-23-HL-FA 1 6 USB转串口线 1 7 CPU和PC串口连接线(见注1) 1 用来连接CPU的USB口和串口线的USB口 8 网线 1 表1 注1:欧姆龙PLC RS232口和上位机串口线的连接方式见图1。 欧亚集团会员卡章程
页脚内容4 图1-欧姆龙PLC RS232口和上位机串口线的连接方式 实验流程:
实验步骤: 一、硬件电路搭建 1、实验设备电路搭建如图2所示。 电源模块 以太网模
块 CPU 主底板
昌辉SWP 系列仪表
硬件电路搭建 软件设置
无协议
收发功能测试
第三方设备协议分析
读取仪表
数据实例
FCS指
令校验码计算
通过FCS指令和协议宏指令接收仪表数据综合测试 欧亚集团会员卡章程
页脚内容5 图2-实验硬件电路搭建图 2、CPU单元设置: CPU单元设置见图3,将所有的DIP开关都置为OFF。
图3-CPU模块DIP开关设置图 3、以太网模块设置: 在该实验中,由于我们将用到CPU自带的RS232口和第三方设备(昌辉仪表)通信,因此对CPU的编程等操作选定为以太网方式。以太网模块的单元号和节点号设置见图4,该实验中设定的IP地址为:192.168.250.1。 欧亚集团会员卡章程 页脚内容6 图4-以太网模块设置图 二、软件设置 1、打开CX-Programmer,文件,新建,设备类型CS1D-S,CPU型号选择CPU67,网络类型选择Ethernet。设置界面如图5。
图5-新建工程 2、以太网连接设置,如图6:将IP地址设定为192.168.250.1 欧亚集团会员卡章程 页脚内容7 图6-IP地址设定 3、在线工作,编程模式下,打开“设置”选项对CPU自带的232口进行设置。如图7所示。在“上位机链接端口”选项下设置通信格式(注2)(波特率、数据格式、232口的工作模式等参数),然后传送到PLC。
图7-CPU自带232口的设置 注2:SWP系列仪表通讯口的传输方式为欧亚集团会员卡章程
页脚内容8 。 三、无协议收发功能的测试。 欧姆龙PLC和第三方设备通信需要通过特殊指令(TXD和RXD)来发送和接收第三方设备的协议。 1、无协议发送功能的测试。 测试要求:发送D0-D9共10个数据到上位机。 上位机接收软件:串口调试工具 (1) 无协议接收程序的编写:测试无协议接收需要用到无协议接收指令RXD
S-发送数据的首地址:将要发送的第三方设备的协议写在S开始的内存中去。 C-控制字:定义发送协议的一些控制项目。控制字的定义如下:
N-发送的数据字节数:定义发送协议的字节数。 无协议发送程序如图7所示(发送D0-D9共10个数据): 欧亚集团会员卡章程 页脚内容9 图7-无协议发送程序截图 (2)无协议发送测试情况如图8、图9所示。
图8-CPU发送数据
图9-上位机接收数据 (3) 测试结果:CPU无协议发送数据正常。 2、无协议接收功能的测试。 测试要求:上位机发送数据,CPU通过无协议接收数据并存到D200开始内存区域。 上位机发送软件:串口调试工具 (1) 无协议接收程序的编写:测试无协议发送需要用到无协议发送指令RXD 欧亚集团会员卡章程
页脚内容10 S-接收数据的首地址:定义接收数据存放的首地址。 C-控制字:定义接收协议的一些控制项目。控制字的定义如下:
N-存储数据的字节数:定义从接收缓冲区中,存储多少字节的数据到指定的地址中去。 无协议接收程序如图10所示(将接收到的数据放在D200开始地址中去):
图10-无协议接收截图 (2) 无协议接收测试情况如图11、图12所示。
图11-上位机发送数据截图 欧亚集团会员卡章程
页脚内容11 图12-CPU接收数据截图 (3) 测试结果:CPU无协议接收数据正常。
四、第三方设备协议分析 1、通讯格式分析 本次实验通信的第三方设备是昌辉的SWP系列仪表,其通信格式为:
· @-起始符; · DE── 仪表设备号(双字节,参见仪表操作手册中之参数“DE” ) · 帧命令── 操作命令(双字节) · 帧数据── 各种操作命令所对应的数据(长度视不同仪表型号而不同) · CRC── 校验字节(除@外 CRC 字节之前其它几个字节的异或值,即 DE(ASII)与帧类型 ASCII和帧数据 ASCII的异或值) · CRC = DEASCII ⊕ 帧 命令 ASCII⊕ 帧数据 ASCII · CR——结束符 2、 设备设置分析 这一部分需要进入仪表的二级菜单对仪表的DE(即设备编号)和波特率进行设置。 设置方法为:
找到DE和BT两个项目如图12。将BT设置为5(即波特率为9600);设备号设置为01。 欧亚集团会员卡章程
页脚内容12 图12-仪表参数设置 3、仪表参数编写 下面以读仪表动态数据(实时测量值)帧为例编写通信命令帧。由通信格式可得到设备发送和接收命令的具体格式(注3):
注3:读仪表动态数据的帧命令为RD,仪表通讯命令集见表2:
表2-SWP仪表通信命令集 故:当设备号为01时应该发送的命令帧为:
五、CS1D-CPU67S读取仪表动态数据实例。 要求: (1)当200.00为1时,CPU将储存在D0开始的内存中的请求命令(请求当前仪表动态数据)发送到SWP仪表。 (2)当200.01为1时,仪表回复当前的动态数据到CPU,CPU将其存在D200开始的内存中。 1、无协议收发数据程序编写,如图13。 欧亚集团会员卡章程 页脚内容13 图13-无协议获取SWP仪表数据 (1)DO中保存的请求命令数据见图14:
图14-CPU发送请求命令 (2)当仪表当前没有给定信号时,接收到的数据见图15。
图15-仪表没有给定信号时 (3)当仪表给定4mA的信号时,接收到的数据见图16。 欧亚集团会员卡章程 页脚内容14 图16-仪表给定信号为4mA时 (4)当仪表给定12mA的信号时,接收到的数据见图17。
图17-仪表给定信号为12mA时 (5)当仪表给定20mA的信号时,接收到的数据见图18。
图18-仪表给定信号为20mA时 2、结论: