如何使用PLC向电脑发送数据?RS485帮你解决
说到通讯大家都觉得很难,觉得学起来没有头绪,其实我刚看到通讯的时候也是这样的感觉,资料找了一大堆都是理论,看来看去总感觉无从下手,最后终于搞懂后才发现,其实学不懂的主要原因并不应该用难来形容,而是这个东西它太复杂了,想要一次全部看懂消化是不太可能的事情,只有分步骤将这个复杂的知识一点点的进行拆分,循序渐进的进行理解,才能最终将这个复杂的知识掌握。
上一篇文章我首先给大家普及了一下通讯的基本原理(到底什么是通讯),什么是RS485,首先帮助大家先对RS485通讯建立一个基本的概念。本文我们就从通讯中最简单的步骤,数据的发送(PLC向电脑发数据)向大家讲起。
1、实验工具
第一要告诉大家我们这篇文章中要用到的工具。
1. S7-200CPU 1个(型号无所谓,最好有两个通讯口)
图1-1
2. 串口调试软件
图1-2
3. Usb转485转换接头1个(RS232转RS485接头也可)
图1-3
4. 9针接头公头1个
图1-4
5.两芯电缆
图1-5
2、实验流程
实验目的:从PLC向电脑发送一个字节的数据。
实验操作:用S7-200PLC向电脑发送一个字节的数据,通过串口调试软件接收,由于现在的电脑都没有RS485通讯接口,因此我们要使用Usb转485转换接头才能保障电脑可以接收到来自PLC的数据,另外接线要注意9针头的3脚接Usb转485接头的信号"+",8脚接Usb转485接头的信号"-"
3、自由口模式
说到程序的编写首先大家必须了解S7-200的自由口模式,由于S7-200的默认通讯方式是PPI通讯,因此不能自由收发数据,如果想自由收发数据,就必须先将S7-200的通讯接口设置为自由口模式,控制S7-200自由口的是特殊位寄存器SMB30和SMB130。其中SMB30是控制CPU通讯口0的,SMB130是控制通讯口1的,当然如果只有一个通讯端口就只能使用SMB30这个特殊位寄存器了。下面我们一起来看看这8个位,分别表示什么含义如图 3-1所示。
图 3-1
1) 0 、1位: 协议选择
mm:
00 = 点到点接口协议(PPI/从站模式)
01 = 自由口协议
10 = PPI/主站模式
11 = 保留(缺省是PPI/从站模式)
2) 2、 3 、4位:自由口波特率设置
bbb:000 = 38400bps
001 = 19200bps
010 = 9600bps
011 = 4800bps
100 = 2400bps
101 = 1200bps
110 = 115200bps
111 = 57600bps
3) 5位:每个字符的数据位
d:
0 = 8位/字符
1 = 7位/字符
4) 6 、7位:效验选择
pp:
00 = 不效验
01 = 偶效验
10 = 不效验
11 = 奇效验
这里还要和大家补充一个概念,在通讯的过程中每次发送与接收的最小单位是字符而不是位,1个字符通常包括1个起始位表示字符的开始,1个停止位表示字符的结束,一个奇偶效验位用于验证字符错对,和8个或者7个数据位用于传递信息。这里奇偶效验位可有可无,数据位通常情况下是8个位也就是1个字节,因此如果一个字符包含奇偶效验位通常是11个位,不包含奇偶效验位则是10个位。
通过上面对自由口模式的介绍,如果我们在S7-200CPU的通讯端口0使用自由口模式,通讯速率为9600bps传输的字符不要奇偶效验位,那么我们就必须将SMB30中的数据配置成00001001如图 3-2所示换算成16进制就是16#9
图 3-2
4、程序编写
在开始编写程序之前,我们首先要掌握S7-200发送指令的使用。
图4-1
XMT发送指令有两个管脚,TBL和PORT。
PORT:通讯端口编号,如果用0端口则写0,如果用1端口则写1.
TBL:定义发送缓冲区的起始地址和缓冲区的大小,如果TBL中写VB100,VB100中存放1,则发送缓冲区是VB101,发送数据时将VB101中的数据发送出去。如果VB100中存放2,则发送缓冲区为VB101和VB102,发送数据时将VB101、VB102的数据发送出去。
下面我们来看程序的具体写法。
图 4-2
图 4-2所示的程序就是一个最简单的发送程序,首先用SMB30将通讯口0定义为自由口,通讯速率9600bps,然后定义VB101为发送缓冲区(因为VB100中存放的是1),通过SM0.5将VB101中的16进制的CC以1秒钟为单位发送给电脑。最终我们电脑将会以1秒为单位接收到PLC发送的字符CC如图 4-3所示。
图 4-3
作者:技成培训网(马乐)
版权为技成所有,未经同意盗取必究!
详解几个使用频率较高的S7-200SMART PLC传送指令,PLC编程不慌张
在编写程序的过程中,经常会碰到存储区中的数值需要改变,或者数据在PLC中存储位置需要改变,这就需要用到传送指令。
首先我们介绍一下标准的一对一传送指令:MOV指令 ;将IN端输入数据复制一份移至OUT输出端,数据类型不同需要用的传送指令也不同,有如下几种。
说明:
1.只要检测到EN条件闭合,就发生数据传送,每个扫描周期执行一次。
2.值的传送过程为IN复制到OUT,OUT中原本数据被覆盖掉,IN中数据仍然保留。
3.对IN的参数可以是常数也可以是变量,对OUT必须是变量。IN为常数时,通常称为赋值。
4.每种指令对应的数据类型必须匹配,否则会发生错误。
5.对定时器和计数器用字传送指令,传送的是当前值。
6.实数传送即浮点数传送,因为浮点数都是32位,所以操作数也为VD。不能与双字传送混用。
7.ENO为能流输出,可以再接其它指令,如常开,常闭,输出,置位,复位等。不接指令时不得延长否则编译报错。
立即传送指令
移动字节立即读取指令读取物理输入 IN 的状态,并将结果写入存储器地址 OUT 中,但不更新过程映像寄存器。
传送字节立即写入指令从存储器地址 IN 读取数据,并将其写入物理输出 OUT 以及相应的过程映像位置。
块传送指令
将相邻的几个数据同时传送到另外几个相邻的寄存器中。块传送应避免地址重叠,否则容易发送数据传输错误。
以BLKMOV_B为例说明指令的执行过程:将IN(VB0)开始的N(5)个数据复制到OUT(VB5)开始的N(5)个寄存器中,N为1-255。三种块传送原理相同,只是存储空间大小不同而已。
字填充指令
将IN中字类型的存储器或常数写入从地址OUT开始的N个字寄存器中。N的范围是1—255。
典型应用:批量清零,初始化。
交换指令
每执行一次,将IN中的字寄存器的高字节和低字节交换一下。
字交换方法:两个字要进行互换,没有直接指令,可以使用传送指令进行交换。
比如要将VW100和VW102中的数据互换,可用如下程序实现:
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
相关问答
电脑与PLC怎么通过网口通讯并发送数据上位机例程?
每家公司的PLC都不一样的,并且通讯协议也不一样常规来说,想通过网口通讯,一般都需要有以太网模块,设置IP地址,根据各家公司特定的协议编程每家公司的PLC都不...
如何通过plc向设备发送指令?
首先建立起PLC与设备控制器的通信系统,然后在PLC上接入触摸屏或者通过在电脑上通过编程软件建立通讯,这样就相当于通过触摸屏或者电脑经过PLC然后我向设备发送...
plc程序怎么发给别人?
1.PLC程序可以通过多种方式发送给别人。2.首先,可以通过电子邮件或即时通讯工具将PLC程序文件发送给对方。这样对方可以直接下载并导入到他们的PLC软件中进...
PLC发送接收产品数据的程序原理?
PLC(可编程逻辑控制器)发送接收产品数据的程序原理一般涉及以下几个步骤:1.数据采集:PLC通过连接传感器、编码器或其他数据采集设备,对产品进行数据采集。...
plc里的传送指令怎么用?
PLC(可编程逻辑控制器)中的传送指令可以通过编程软件进行设置和使用。以下是一般的使用步骤:1.打开PLC编程软件,并连接到PLC设备。2.创建一个适合的程序或...
s7-200怎么将PLC程序上传到电脑?
要将S7-200PLC程序上传到电脑,您需要使用适当的编程软件,如STEP7Micro/WIN。首先,将PLC与电脑连接,确保连接正常。然后,打开编程软件并选择正确的通信...
三菱plc批量传送指令的使用方法?
操作方法01我们首先需要编写一个开关用于将一组数据传送至三个寄存器:这个开关使用X0,在左母线右侧输入LDX0,即可输入该触点。02我们以传送三组数据为例...
产电plc程序怎么上传?
要上传产电PLC程序,请按照以下步骤操作:1.确保PLC型号支持编程语言为ST(结构化文本)或梯形图。2.使用编程工具(如PLC助手、PLC编程软件等)创建...
plc中byte变量用什么指令传输?
是字节传送指令。(1)字节传送指令字节传送指令又分为普通字节传送指令和立即字节传送指令。MOVB:字节传送指令。BIR:立即读字节传送指令。BIW:立即写字...
plc指令是怎么传输的?
plc指令的传输是利用MOV指令将源操作数的数据传送到目标元件中,即[S.]→[D.]。MOV指令的意思即将一处的指令转移到指定处。当开关地址X0为ON时,源操作数[S.]中...