西门子PLC226自由口通信是怎么通信的?
S7-200 CPU的通信口可以设置为自由口模式。选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。
S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口。此串行字符通信的格式可以包括:
一个起始位
7或8位字符(数据字节)
一个奇/偶校验位,或者没有校验位
一个停止位
自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。
凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。
自由口模式可以灵活应用。Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。
在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal-超级终端)调试自由口程序。
USB/PPI电缆和CP卡不支持自由口调试。
自由口通信要点
应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。用户程序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。
CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。
通信口的工作模式,是可以在运行过程中由用户程序重复定义的。
如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7="1",在STOP时SM0.7="0")
自由口通信的核心指令是发送(XMT)和接收(RCV)指令。在自由口通信常用的中断有“接收指令结束中断”、“发送指令结束中断”,以及通信端口缓冲区接收中断。
与网络读写指令(NetR/NetW)类似,用户程序不能直接控制通信芯片而必须通过操作系统。用户程序使用通信数据缓冲区和特殊存储器与操作系统交换相关的信息。
XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。如果接收的消息中包括了起始或结束字符,则它们也算数据字节。
调用XMT和RCV指令时只需要指定通信口和数据缓冲区的起始字节地址。
XMT和RCV指令与NetW/NetR指令不同的是,它们与网络上通信对象的“地址”无关,而仅对本地的通信端口操作。如果网络上有多个设备,消息中必然包含地址信息;这些包含地址信息的消息才是XMT和RCV指令的处理对象。
由于S7-200的通信端口是半双工RS-485芯片,XMT指令和RCV指令不能同时有效。
XMT和RCV指令
XMT(发送)指令的使用比较简单。RCV(接收)指令所需要的控制稍多一些。
RCV指令的基本工作过程为:
在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态
监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态
如果满足了设置的消息结束条件,则结束消息,然后退出接收状态
所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。
所以确保不同时执行XMT和RCV非常重要,可以使用发送完成中断和接收完成中断功能,在中断程序中启动另一个指令。
在《S7-200系统手册》和Micro/WIN 在线帮助中关于XMT和RCV指令的使用有一个例子。这个例子非常经典,强烈建议学习自由口通信时先做通这个例子。
字符接收中断
S7-200 CPU提供了通信口字符接收中断功能,通信口接收到字符时会产生一个中断,接收到的字符暂存在特殊存储器SMB2中。通信口Port0和Port1共用SMB2,但两个口的字符接收中断号不同。
每接收到一个字符,就会产生一次中断。对于连续发送消息,需要在中断服务程序中将单个的字符排列到用户规定的消息保存区域中。实现这个功能可能使用间接寻址比较好。
对于高通信速率来说,字符中断接受方式需要中断程序的执行速度足够快。
一般情况下,使用结束字符作为RCV指令的结束条件比较可靠。如果通信对象的消息帧中以一个不定的字符(字节)结束(如校验码等),就应当规定消息或字符超时作为结束RCV指令的条件。但是往往通信对象未必具有严格的协议规定、工作也未必可靠,这就可能造成RCV指令不能正常结束。这种情况下可以使用字符接收中断功能。
另外,如果使用modbus协议,可从西门子网站下载库文件即可。地址:http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=Toolbox
首先考虑您的PLC端接收消息的起始结束条件设置,看下发送的数据是否满足已经开始了接收;
其次不排除串口软件存在问题,您可以尝试下两个PLC之间发送数据
S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口。此串行字符通信的格式可以包括:
一个起始位
7或8位字符(数据字节)
一个奇/偶校验位,或者没有校验位
一个停止位
自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。
凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。
自由口模式可以灵活应用。Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。
在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal-超级终端)调试自由口程序。
USB/PPI电缆和CP卡不支持自由口调试。
自由口通信要点
应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。用户程序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。
CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。
通信口的工作模式,是可以在运行过程中由用户程序重复定义的。
如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7="1",在STOP时SM0.7="0")
自由口通信的核心指令是发送(XMT)和接收(RCV)指令。在自由口通信常用的中断有“接收指令结束中断”、“发送指令结束中断”,以及通信端口缓冲区接收中断。
与网络读写指令(NetR/NetW)类似,用户程序不能直接控制通信芯片而必须通过操作系统。用户程序使用通信数据缓冲区和特殊存储器与操作系统交换相关的信息。
XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。如果接收的消息中包括了起始或结束字符,则它们也算数据字节。
调用XMT和RCV指令时只需要指定通信口和数据缓冲区的起始字节地址。
XMT和RCV指令与NetW/NetR指令不同的是,它们与网络上通信对象的“地址”无关,而仅对本地的通信端口操作。如果网络上有多个设备,消息中必然包含地址信息;这些包含地址信息的消息才是XMT和RCV指令的处理对象。
CPU226两个通讯口怎么设定不同的波特率
可以啊!但威纶的触摸屏相关波特率也要改为19.2! 可以在S7200的编程软件的“系统块”里的“通讯端口”里做相关设定,设定完成后要下载程序!
如果PLC-S7-200的两个通讯端口是同一地址-工作时会张冠...
回答:同意楼上的说法,我用226的一个口和触摸屏通讯,另一个自由口发送数据,两个完全不干扰的网络,自然地址一致也不会影响。
谁能帮我讲解一下西门子200PPI通讯协议,谢谢各位。
S7-200 PLC之PPI协议 通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源 S7-226的编程口物理层为RS-485结构,SIEMENS提供...
西门子PLC S7-200.CPU226的编程用哪个串口与电脑连接
MPI电缆,直接用USB链接多简单。
S7-200 CPU226的PLC 与电脑无法通讯,但是与文本器可以通讯
S7200有端口设置,把拨码拨到stop位置,试试看,要是还通讯不上,可能PLC程序加密或者通讯口有问题,226有两个口,你可以换个口试试看。
一台西门子plc200同时与两台电脑通信,怎么做?
实现的方案有多种。1.使用有两个编程口的PLC,例如CPU224XP或者CPU226。2.加EM277模块,用Profibus-DP协议,支持多主站。3.加CP243-1以太网模块。4.PLC和电脑A通讯,然后电脑B通过局域网读取电脑A的数据。(可以通过OPC,有组态软件的话也可以使用双机热备)5.当然也可以使用Modbus等协议把PLC做...
合信226L两个通信口怎么单独分别和PC以及触摸屏通信
编程口直接可以跟触摸屏通讯,任何PLC都这样,另外一个串口要通讯,需要用无协议指令来编写通讯驱动,比如你用MODBUS协议格式来写
如何判定西门子PLC通讯口的好坏?(CPU226),现在通讯连接不上,我不知道...
以下统称为CP卡。 使用CP卡进行编程通信,应使用MPI电缆,或者PROFIBUS电缆连接CPU上的编程口,或者带编程口的网络连接器上的扩展编程口,或者EM277模块上的通信口。 CP5511\/CP5512\/CP5611不能在Windows XP Home版下使用。所有的CP卡不支持S7-200的自由口编程调试。 CP卡与S7-200通信时,不能选择“...
西门子PLC两个通信端口各自的作用?
这个要具体看是哪个型号的PLC了 西门子目前有S7-200,S7-200SMART,S7-300\/400\/S7-1200\/1500 从你的描述中感觉你指的是 S7-200系列CPU226或CPU224XP 这两个PLC 的CPU集成了两个串口,都是RS485接口,支持PPI协议,MODBUS RTU协议 ,SSI 协议。这两个通讯口是对等的,功能相同。
西门子plc 226输入信号电压的识别范围是多少?
在工业自动化领域,西门子PLC常用的输入信号类型主要有电流信号和电压信号。其中,电流信号普遍采用4-20mA标准,这是因为在长距离传输时,电流信号能保持较高的信号完整性和稳定性。然而,电压信号的使用相对较少,尤其是在需要长距离传输的情况下,因为电压信号在传输过程中容易受到干扰。你提到的输入信号...