回复:求教:CP341做MODBUS通讯(MASTER)是否只能调用一次FB8?

老石

  • 帖子

    47
  • 精华

    3
  • 被关注

    0

论坛等级:游民

注册时间:2008-08-04

普通 普通 如何晋级?

发布于 2008-09-10 22:44:06

0楼

谢谢dcount107!这么说,冬日朋友的思路似乎不错.
今天考虑还是要把昨天的程序实验做透彻,有些体会,与朋友们分享。就实际效果来说,本贴的目的应该已经实现.这也是万版说的"不要把思路局限在两次调用上。"
实验硬件条件:CPU314PtP(手头器材),CP341,北京迅威公司RS232/485转换器,MOXA公司RS485接口光电转换器和一段光缆。PC机一台,运行STEP7和仿真测试软件。通过CP5611调试程序。通过COM口建立的仿真通讯,可以建立多个MODBUS从站。

实验目的:继续观察调用一个FB8,利用时序脉冲连续修改“DB1.DBB0”,“DB1.DBB1”,“DB1.DBW4”的数值,考察对通讯程序运行结果影响。程序中对FB7,FB8的EN端没有控制,保持TRUE。LEN=18没有改变。

DB1数据实际内容(LEN=18):
01 10 00 00 00 06 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F
下面代码加粗字体(第1,2,6字节)是在OB1利用MOVE指令对DB1相应单元修改部分,DB1其他字节没有改变。
希望执行如下指令(不含CRC校验):
01 10 00 00 00 06 0C 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F ;对1号站写10个数
02 10 00 00 00 04 0C 00 0A 00 0B 00 0C 00 0D ;对2号站写4个数
03 03 00 00 00 06 ;读3号站6个数
04 03 00 00 00 03 ;读4号站3个数
执行结果,符合预期。使用SSCOM32接收代码如下。说明修改“DB1.DBB0”就可以切换从站,修改“DB1.DBB1”实现功能的切换,在“DB1.DBB1”保持不变的情况下(确定了功能代码),例如16功能,“DB1.DBW4”决定实际发送代码长度,而不是LEN决定实际发送代码长度。

01 10 00 00 00 06 0C 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 98 39
02 10 00 00 00 04 08 00 0A 00 0B 00 0C 00 0D FB 7C
03 03 00 00 00 06 C4 2A
04 03 00 00 00 03 05 9E

01 10 00 00 00 06 0C 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 98 39
02 10 00 00 00 04 08 00 0A 00 0B 00 0C 00 0D FB 7C
03 03 00 00 00 06 C4 2A
04 03 00 00 00 03 05 9E

01 10 00 00 00 06 0C 00 0A 00 0B 00 0C 00 0D 00 0E 00 0F 98 39
02 10 00 00 00 04 08 00 0A 00 0B 00 0C 00 0D FB 7C
03 03 00 00 00 06 C4 2A
04 03 00 00 00 03 05 9E

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54704条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。