首页 上一页 1 2 下一页 尾页

求助:s7300与s7200的通信? 点击:2828 | 回复:24



高君

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-01 10:11:00
楼主
各位高手大家好:
    虽然看过一些有关这方面的东东和网页上的交流帖子,但还没弄很懂.我是从学计算机转行学PLC控制的,所以请大家耐心帮助我下.
    我目前正在做一个生产线控制程序,主站是S7300(315-2DP),从站是S7200,转换模块是EM277,我的主程序都在300中实现,200主要控制三菱伺服电机,主要问题是:到200工作工作时,如何从300的程序转过去,等200工作完后又如何从200返回到300?
    我看过一篇资料,但是没理解上去,就是不知道具体怎么操作,呵呵,够笨的了,发过来大家帮我解释解释,多谢啦!
    [color=#FF0000][b]转附[/b][/color]:S7200与S7300之间采用MPI通讯方式时, S7200 PLC中不需要编写任何与通讯有关的程序,只需要将要交换的数据整理到一个连续的V 存储区当中即可,而S7300中需要在OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC67)和X_PUT(SFC68),实现S7300 与S7200之间的通讯,调用SFC67和SFC68时VAR_ADDR参数填写S7200的数据地址区,这里需填写P#DB1.××× BYTE n 对应的就是S7200 V存储区当中VB××到VB(××+n)的数据区。

首先根据S7300的硬件配置,在STEP7当中组态S7300站并且下载,注意S7200和S7300出厂默认的MPI地址都是2,所以必须先修改其中一个PLC的站地址,例子程序当中将S7300 MPI地址设定为2,S7200地址设定3,另外要分别将S7300和S7200的通讯速率设定一致,可设为9.6K,19.2K,187.5K三种波特率,例子程序当中选用了19.2K的速率。
   例子程序在OB1当中调用数据读写功能块:SFC67和SFC68,分别在STEP7 MicroWin32 和STEP7当中监视S7200和S7300 PLC当中的数据.



高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-01 10:18:00
1楼
最好是能给出一段例子程序,这样就最好了,我可以参考着来理解.希望大家不吝赐教!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-12-01 10:19:00
2楼
主站存放主程序,从站接收主站控制信息即可。

高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-01 10:25:00
3楼
下面引用由飘香一剑在 2006-12-1 10:19:00 发表的内容:
  主站存放主程序,从站接收主站控制信息即可。
------------------------------------------------------------------------------------------
对,主要是如何实现这个通信啊?200的地址和300的地址需要通过一个V存贮区转换,怎么转换啊?它们是怎么对应的?

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-12-01 10:25:00
4楼
其实我不懂s7300,不过看了你的描述,我想是不是可以在300中利用某个元件V或是M或者特殊指令来控制200中的某个V数值或是M的状态,让200开始工作(当然事先以用SFC67和SFC68将数据写入200中了),然后用300的SFC67和SFC68读200中某个V数值或是M的状态来结束200的工作。
我没做过我只是猜测,不对你就不用考虑了。

高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-01 10:28:00
5楼
"SFC67和SFC68将数据写入200中了),然后用300的SFC67和SFC68读200中某个V数值或是M的状态来结束200的工作。"

是用到SFC67和SFC68这两个东西了,但是我不知道这2个东西究竟是怎么回事?得填写一些参数进去,看帮助文件又找到这2个函数的功能描述.S7手册里也没有说明,所以挺闹心的,现在就是明白了原理,就是不会操作这些函数.

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2006-12-01 11:16:00
6楼
to 高君
看到你使用了EM277,走的应该是PROFIBUS协议,300做主站,200做从站,在200里面不需做任何通讯程序,实际上在300里也不要做很复杂的程序,只需要把地址对应起来就OK,比如你用的是2IN/2OUT
硬件地址对应为IN-256.0-259.0 OUT-256.0-259.0
300程序
L PID 256
T MD0 //读过来的数据
L MD4 //要写的数据
T PQW 256
EM277地址与波特率要与300的硬件组态一致

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2006-12-01 11:20:00
7楼
刚才找了一下300指令集,有SFC指令,我发到你的邮箱gj_0218@163.com里了,不知道对你有没有帮助,你看看吧。

vgrgvew

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 80回
  • 年度积分:0
  • 历史总积分:113
  • 注册:2006年12月01日
发表于:2006-12-01 11:24:00
8楼
你的通讯方式为调用系统功能的MPI通讯方式,
S7200只能做服务器,S7300为客户机。
1、激活。即握手标志
2、通讯数据处理方式。连续或是间断
3、明确地址。接收/发送双方的
4、分配内存。接收/发送双方的
5、通讯错误处理。
6、数据通讯完成标志。
发送和接受功能块编制雷同

高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-01 14:25:00
9楼
谢谢大家的帮助,我终于知道怎么去做了,比书里介绍的好多了.我到邮箱里接收到了,谢谢各位的帮助!

高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-01 14:26:00
10楼
我用的的确是PROFIBUS网络,但是也有MPI电缆,也不是很懂这些东西.能介绍下哪里可以学习下这方便的书籍或者网页.

abc35

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 45回
  • 年度积分:0
  • 历史总积分:66
  • 注册:2005年11月04日
发表于:2006-12-02 13:10:00
11楼
你用EM277那是PROFIBUS_DP网络,只要在300硬件组态里面添加EM277,然后指定添加IN/OUT 多少字节比如:IN,16WORD,OUT,16WORD.设置对应哪个V区比如:0,这样300里面分配的I地址对应200里面的VB0~VB15,OUT地址对应VB16~VB31,直接就可以访问.很简单.另外,也可以MPI方式通信,你提到的那样要调用X_GET(SFC67)和X_PUT(SFC68),实现S7300 与S7200之间的通讯.

清朝

  • 精华:0帖
  • 求助:0帖
  • 帖子:37帖 | 1359回
  • 年度积分:0
  • 历史总积分:2281
  • 注册:2004年10月16日
发表于:2006-12-02 15:15:00
12楼
你用EM277那是PROFIBUS_DP网络,只要在300硬件组态里面添加EM277,然后指定添加IN/OUT 多少字节比如:IN,16WORD,OUT,16WORD.设置对应哪个V区比如:0,这样300里面分配的I地址对应200里面的VB0~VB15,OUT地址对应VB16~VB31,直接就可以访问.很简单.另外,也可以MPI方式通信,你提到的那样要调用X_GET(SFC67)和X_PUT(SFC68),实现S7300 与S7200之间的通讯.
[color=#FF0000]同意[/color]

高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-04 18:16:00
13楼
谢谢大家的精彩解答!

小虫儿

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 132回
  • 年度积分:0
  • 历史总积分:372
  • 注册:2003年5月28日
发表于:2006-12-05 09:25:00
14楼
同意lmhx和abc35的说法,既然使用了em277应该是采用profibus网络。

高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-07 14:37:00
15楼
我采用的是profibus网络。我现在又遇到新问题了:就是组态网络时S7300里找不到EM277这个模块!SIEM089D.GSD文件也没有.是不是不添加这个GSD文件就没有EM277呢?可我的电脑里没有SIEM089D.GSD.这是怎么回事,望大家指教!谢谢.

飞云

  • 精华:0帖
  • 求助:0帖
  • 帖子:26帖 | 494回
  • 年度积分:0
  • 历史总积分:787
  • 注册:2002年8月03日
发表于:2006-12-07 14:48:00
16楼
到西门子网站下载个GSD大全,找不到就找我  run144@163.com

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2006-12-07 14:49:00
17楼
添加该GSD文件就可以找到,你电脑中没有说明你从来也没有添加过GSD文件,既然买了EM277,就应该向经销商索要该GSD文件。

足不出户

  • 精华:1帖
  • 求助:1帖
  • 帖子:189帖 | 1589回
  • 年度积分:293
  • 历史总积分:5205
  • 注册:2003年6月20日
发表于:2006-12-07 14:53:00
18楼
学习!

高君

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 81回
  • 年度积分:0
  • 历史总积分:179
  • 注册:2006年12月01日
发表于:2006-12-07 14:53:00
19楼
该死的奸商竟然没给我!我说我搜索了整个电脑也没找到这个GSD文件.其他的GSD文件倒是找了些.原来EM277是需要经销商给我们这个文件啊.找他要去.多谢楼上.

皓月

  • 精华:9帖
  • 求助:0帖
  • 帖子:483帖 | 5271回
  • 年度积分:0
  • 历史总积分:8863
  • 注册:2003年11月09日
发表于:2006-12-07 23:57:00
20楼
em277的GSD文件可到SIEMENS网站上下载
www.ad.siemens.com.cn 

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页