老师,请问西雅特中国哪里有卖上位机怎么和西门子S7-200实现通讯

西门子s7-200与s7-200 smart如何通讯?_百度知道
西门子s7-200与s7-200 smart如何通讯?
1、s7-200 smart的485通讯口已连触摸屏,如何扩展通讯口2、s7200的 port 0已连上位机,port 1连触摸屏,如何扩展通讯端口3、使用扩展后的端口进行主从通讯
我有更好的答案
增加接口模块
DP接口模块EM277
以太网接口模块CP243-1
采纳率:58%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。电话: 025-
传真: 025-
地址:南京紫金(江宁)科技社区
当前位置: >
研华工控机与西门子S7-200型号PLC通讯设计(示范例程)
&&&&&&& 最近,几个客户一直在咨询西门子S7-200型号PLC与工控机通讯的问题,南京研维信息技术解决方案部门针对这方面需求,特意以专题形式予以解答,本文就以为典型工控机类型进行介绍,下位机PLC选择大家比较常见的西门子S7-200型号产品,我们选择的是微软的Visual C++作为程序开发语言,具体通讯协议架构如下:
&&&&&& 首先,整个示范程序的基本流程架构思路如下:用上位机作主机,向PLC发送读/写指令,PLC接收到信息后判断传输正确与否,若错误则反馈BCC码错误信息给上位机,若为读指令,在本系统中则读取实时压力值,若为写指令,则向PLC的M寄存器区写入数据,从而控制现场设备的运行。同时上位机向PLC询问写入数据库标志位状态,若为1则将压力值写入后台数据库。系统中计算机通过COM口发送指令到PLC的PORTO(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。
&&&&&&& 然后,我们对上位机进行软件设计,主要开展通讯接口协议定制开发,主要包括两方面内容:
&&&&&&& 一是监控界面要实时反应现场压力变化,因此需要不断从PLC中读取压力值,二是工控机监控界面的软键盘上的一些控制按钮需要能完成硬控制面板上所能操作的所有功能,这两个通讯过程中途都不能被打断,否则通讯会出错,因此上位机采用多线程下来实现串行通信。多线程的实现可以使得各端口独立,准确地实现串行通信,使串口通信具有更广泛的灵活性与严格性,且充分利用了CPU时间。本系统将读取实时压力值这一通讯过程放在一个独立的线程中,采用Sleep()函数,让上位机在读取一次压力值后休眠一段时间再进行下一次读取,这样读取压力值的过程就可以在后台进行操作了。
&&&&&&& 通信程序用CreatFile打开串口,并用SetCommState设置串口值,用ReadFile()和WriteFile()来接收和发送数据,为了实现线程的同步,采用临界区CriticalSection来实现,保证在同一时刻只能有一个线程对同一内存区进行操作,这样能够防止两个线程同时自主访问同一内存区所造成的访问结果的不确定性。采用事件驱动的方式来查询串口是否有数据到达,当然在进行串行数据传输之前,两个设备必须达成握手协议,只有两者协议成功以后,才可以进行数据传输。
&&&&&&& 上位机串口设置程序如下:
BOOL MultiDoc::ConfigConnection()
{DCB dcb;
if(!GetCommState(m_hCom,&dcb))
return FALSE;//不能获取当前配置作错误处理
dcb.fBinary=TRUE;
dcb.BaudRate=9600;//数据传输速率
dcb.ByteSize=8;//每字节的位数为8
dcb.fParity=FAISE;//不启用奇偶校验
dcb.StopBits=ONESTOPBIT;//1个停止位
return SetCommState(m_hCom,&dcb);
//设置串行设备控制参数}
&&&&&&& 第三步,我们要开展下位机程序设计,由于S7-200 CPU通讯端口是RS485半双工通讯口,因此发送和接收指令不能同时处于激活状态。CPU使用SMB30(Port0)和SMB130(Port1)定义通信口的工作模式,用XMT/RCV指令向指定通讯口以字节为单位发送/接收一串数据字符,要发送的字符以数据缓冲区指定,一次发送的字符最多为255个,指令执行完成后,会产生一个中断事件(发送指令Port0为中断事件9,Port1为中断事件26,接收指令Port0为中断事件23,Port1为中断事件24)。
&&&&&&& PLC在第一次扫描时执行初始化子程序,对端口及RCV指令进行初始化。初始化完成后,运行RCV指令使端口处于接受状态,接收完后用启用中断,中断程序对指令进行译码,同时给校验子程序入口寄存器置位,发送接收标志位复位,并将写入接收数据地址指针。计算接收数据的BCC码,若正确且结束字符为设定值时则给BCC码正确标志位置位,若标志位为写,则调用write子程序,向PLC寄存器中写入控制值,进而控制现场的设备运行,若为读,则调用read子程序,则从PLC的数据缓冲器中读取压力值,如果BCC码不正确,则直接向上位机发送BCC校验码错误的信息,如BCC码正确而结束字符不等于设定值,则向上位机发送指令不合法的信息。
&&&&&& PLC初始化子程序代码如下:
MOVB 16#09,SMB30//初始化自由端口,选择波特率为9600
MOVB 16#EC,SMB87//允许接收,检测信息始末字符
MOVB 103,SMB88//信息开始字符&G&
MOVB 71,SMB89//信息开始字符&g&
MOVW +1000,SMW92//信息超时值1s
MOVB 55,SMB94//最大接收字符数55
ATCH RCVcomplete,23//接收完成中断连接到RCV complete子程序
ATCH XMTcomplete,9//发送完成中断连接到XMT complete子程序
ENI //允许全局中断
MOVB 2,VB221//设定本PLC地址
MOVD &VB102,VD169//装载接收缓冲器地址指针
MOVB 0,VB215//清零接收数据BCC码
MOVD &VB176,VD217/装载发送缓冲器地址指针
MOVB 0,VB216//清空发送数据BCC码
&&&&&&& 值得说明的,我们在进行上位机、下位机设计时,首先需要定义的就是我们的通讯协议设计,我们本程序约定串行通信的波特率为9600b/s,每字节为8位,不采用奇偶校验位,采用异或校验法进行检验,指令采用ASCII码进行传送,计算机每次发送一个38字节长的指令来实现一次读/写操作,命令帧(上位机)格式为:字节0为起始字符,标志为指令的开始,本例设定为ASCII码的&G&,字节1为指令类型,05H代表读操作,06H代表写操作,字节2~3为目标PLC站地址,字节4~19为目标寄存器地址,在PLC内部可以用4个字节来表示一个寄存器的地址(但不能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号,0000(H)为I寄存器区、0100(H)为Q寄存器区、0200(H)为M寄存器区、0800(H)为V寄存器区(本系统中主要是对M寄存器区写入控制字,从V寄存器区中读取数据,同时因为系统工作时为四个工件同时检测,上位机读取PLC数据时为同时读取四个压力值,故在此使用了16个字节)。字节20~21为读写字节数,字节22~35是要写入的数据,字节36~37为发送BCC校验码,字节38为结束字符,本例中为ASCII码的&g&,其中字节2~37均为十六进制ASCII码格式。
南京研维信息技术有限公司
版权所有 Copyright ©
电话:025-
工信部备案号:苏ICP备号-3
公安机关备案号:苏公网安备 24号
南京研维是一家集工控机生产与销售为一体的知名工控机供应商,公司面向全国销售,RPC610工控机,RICH300工控机,品牌包含、凌华工控机、华北工控机等,产品100%均为厂家正品原装销售,全国包邮一台也批发,订购热线,也提供工业计算机客制化ODM服务,告诉我们一个需求,研维还您一个全面科学的产品定制方案。级别: 正式会员
发帖数量: 1 个
工控威望: 53 点
下载积分: 125 分
在线时间: 0(小时)
注册时间: 最后登录:
厂里面有一台设备,用的是西门子S7-200 CPU224的PLC,有上位机组态;现在领导想把PLC里面的数据(生产数据,例如温度、压力、数量之类的)远程传输到老板的办公室做一个触摸屏显示(1200米,3,8脚485出来转换为光纤-----光纤转换为485进触摸屏,触摸屏是显控的,支持S7-200直连,而且我在线下也用直连法连结果其他S7-200PLC没有问题),因为原设备组态只用了一个串口,就是面向PLC靠内测的那个,而我们准备用靠外侧的那个口连接触摸屏,但是无论怎么调试就是不能通讯(还没有转为光钎,直接用485直连,我用的触摸屏内置的S7-200协议),后来再PLC看程序的时候发现了MOBUS指令(附截图),还有PLC连接上位机组态也是485直连的,没有用那种中间带适配器的数据线。是不是,通讯口被改掉了?如果是被改了是不是改为了MODBUS协议,那我用触摸屏怎么设定这个协议,从程序里面能看得出来吗?例如:波特率、数据位、停止位等等,谢谢大家,在线急等......
级别: 网络英雄
发帖数量: 396 个
工控威望: 5058 点
下载积分: 3410 分
在线时间: 352(小时)
注册时间: 最后登录:
见系统块通讯设置。
级别: 论坛先锋
发帖数量: 1037 个
工控威望: 1513 点
下载积分: 6682 分
在线时间: 529(小时)
注册时间: 最后登录:
如你所说的:**因为原设备组态只用了一个串口,就是面向PLC靠内测的那个,而我们准备用靠外侧的那个口连接触摸屏,**两个通信口可在系统块中分别设置好后下载。以适应不同通信网络。
吉圆电气 QQ时间: 07:07 来源:网络
网友jbp2a4b1c0659通过三星GALAXYNote5提问:西门子s7-200PLC中怎样输入变量信息热心网友1回答:做1个子程序或功能块,给出1个调用的条件(就是你指的变量)就行了网友qinjunwz通过小米红米Note3提问:请教各位大侠,西门子S7-200PLC如何实现位的间接寻址,即用指针进行变址,谢谢!热心网友1回答:用字的方式来寻址,然后取字中位来做控制就可以了。单纯的位间接寻址功能是没有的热心网友2回答:都可以。看看帮助文档里的相关信息。网友changjeff通过三星GALAXYS7(全网通) 提问:请问如何实现西门子s7-200自由口与上位机的通讯?上位机只需读取plc地址内的数据就行。热心网友1回答:可以采用485,的,你可以看下廖常初书吧,上面有例子,上位机无所谓啦,VB,VC,DELPHI,随便挑,呵呵热心网友2回答:于上位机的通信,一般都是2种,以太网通信和现场总线。
如果是S7-200的串口,可以用MPI协议,串口通信PC/PPI就不要用了,很不稳定。
MPI协议,需要购买适配器或CP5611通信卡,都比较昂贵,2000以上,价格和以太网模块差不多哦...热心网友3回答:您好:
那位前辈也说了直接用485是最省钱的,485的通讯距离为1000米。超过一千米要加中继器。你在组态里就可以直接选择串口的通讯方式进行数据采集。热心网友4回答:直接用485的可以通讯的。用自由口。协议自己定,在PLC里面写通讯是可以的。热心网友5回答:用组态软件就可以相连,我用了几分钟就可以读到PLC的数据,而且还可以通过上位机控制PLC网友通过OPPOR7s提问:新手有个西门子S7-200plc通信问题请教各位大侠们,就是说plc不是有自带通信串口吗,可以和仪热心网友1回答:通信模块是扩展通信用的,比如需要连的设备比较多,自带的串口不够用了就需要通信模块来增加串口数量了,但是如果你自带的串口够用就完全没必要在使用通信模块。
望采纳。。。。。热心网友2回答:485串口考虑通讯距离和芯片的负载能力,一般连接的从站数量有限。
另外命令和应答需要一定的时间,PLC对所有从站读写一次的总时间较长,在某些控制系统中并不适用,需要通过多个串口将从站分组。
还有就是S7-200的串口并...热心网友3回答:是的
可以用自己的串口
不过要自己写通信程序
通信模块是选项 不一定要选用模块网友kandianying0通过三星GALAXYS6 Edge提问:我是个新手,在用S7-200编程软件,从PLC中上传程序时,提示PLC受保护,而不能上传怎么办?热心网友1回答:你说的上传就是上载程序吧?你不能上载就是PLC被加了密码,看你是什么型号和版本的PLC,如果希望得到里面的程序那就要花钱请人破解密码了,否则的话直接清除程序就能清除密码,就变成空PLC了!哈哈热心网友2回答:是提示你要密码吗? 一般就是别人在下载程序时设置了密码,你如果要上传的话需要先输入密码才可以!你可以问做这程序的人要下密码也可以在网上搞个破解软件就能将它上传!热心网友3回答:setp7菜单plc项,选清除,如果提示要密码就输 clear或者clearplc。让plc回出厂状态。热心网友4回答:四级加密
得硬件破解网友hgt24通过Iphone6s提问:关于西门子PLC S7-200 PLC Profibus-DP通讯的问题,跪求大侠!!热心网友1回答:这通讯需要加EM277模块;PLC内部只要设置一个通讯地址(不可以重复);组态软件中需要编制对每一个PLC的地址通讯设备窗口;外围接线采用2*1.0屏蔽线将所有PLC 并联 接线(支线不超过三米),终端到上位机COM口;然后再在上位...热心网友2回答:使用EM277确实可以使S7-200的PLC连接到Profibus网络上,但是S7-200是不能作为主站在网络上的,所以说按照这种配置无法实现,最起码用一个300的PLC。热心网友3回答:通讯只是设定好参数就可以了,其他底层东西你不用考虑太多,厂家已经弄好了热心网友4回答:io总线可以网友tiayu137308通过苹果iPhone6SPlus提问:刚接触西门子PLC想请教各位大侠:有一个S7-300和2个S7-200通过profibus组成的,现在想通过网线远程通讯。热心网友1回答:添加300的网络模块,将300作为profibus主站,由300来进行远程数据交换要好点。用200当300的主站的话会造成数据传输负担过重。300添加上以太网模块后只要设定好IP地址就可以远程监控和数据采集了。200和300间既然有通讯就...热心网友2回答:你的300的型号是什么~~~如果是带DP口的话如315-2DP,就可以直接在200端接EM277都DP了,如果没有DP口,可以选用342-5DP模块走DP通讯~~热心网友3回答:S7-300和2个S7-200通过profibus组成是实现不了通过网线通讯的,可以走紫色DP电缆 profibus DP 通讯啊热心网友4回答:这个简单 有现成的案例文档可以借鉴网友ellavox通过Edge+魅族魅蓝metal(双4G)提问:我有一个台式电脑,一个S7-200的西门子plc,一根连接电脑和plc的USB-PPI编程电缆,下热心网友1回答:其实你这个就是用电脑做上位机。
电脑连接上PLC然后在组态王里连接好PLC的变量就行了。网友yuanhongfei666通过vivoX6D(双4G) 提问:学习PLC是学习西门子S7-200还是西门子S7-300/400还是三菱的好? 请各位大侠指点一二热心网友1回答:我建议你先学西门子s7-200的,从应用技术上看所有的PLC工作方式都是一样的,不同的西门子是全球应用最广泛的,你学会了200就相当于会了基本的应用能力,这时再学300,300是在200的基础上对应用的方向上做了分类,有不同的...热心网友2回答:200用得比较多,学出来比较有用,但学起来不容易,三菱比较好学,适合入门者,但用的不多,300和400还是等学好200再说吧,学不好200,300/400连门都入不了。热心网友3回答:S7-300,相应的功能多点。对以后有好处。我在学校里一般用S7-200的。其实西门子系列的基本相通的。市场上现在西门子用的蛮多的,三菱的也还可以。热心网友4回答:用什么学什么,都不难学网友xxqjd通过vivoX6PlusD提问:各位大侠,有谁会把西门子s7-200plc的梯形图从弄到word中去。急!急!急!热心网友1回答:虚拟打印机 打印成图片输出后插入到WORD中就可,很简单!!!!! 你试试吧!
你也可以分享到:

我要回帖

更多关于 大众西雅特 的文章

 

随机推荐