数字量485通讯
郑志武
发布于2013-02-28 23:04
4
0
标签:
系统采用cp341与横河dcs通讯,我们这边做从站,横河那边是主站。dcs读我这边的模拟量和给我这边的模拟量都没有问题,我这边给dcs的数字量共有30个点(地址是m20.0~m23.5),我本来采用fc02功能码,这样这30个点对应的地址是10001~10030,而dcs那边的数字量的数据类型是input(direct)、bits,一个地址可对应16个数字量点,相当于10001的地址对应的是我这边的前16个点,这样一来dcs就只做了两个地址10001和10002就可对应我这边的30个点了,但结果是dcs那边只能看到我这边的前16个点的状态,后14个看不到。横河那边要我们把数字量16个点打一个包传过去,对应他那边的一个地址,我就用fc04功能码传,在db块中的数据类型选的是word,一个字可对应16个数字量点,两个字就可以传过去了,我这边的地址是30001和30002,dcs那边的数据类型选择16位无符号或16位有符号数都没有显示,选择input(direct)、bits有显示,但是所有数字量的状态老是在0和1之间跳,基本上四五秒就变一次。我又把这个字的高八位和低八位掉了个位置,在fc04功能码对应的db块中将数据类型由word改为bool型,做了30个bool型的变量对应这30个数字量,结果dcs那边还是在0和1之间跳,请问这是怎么回事啊,如果说要把数字量16个点打个包传过去该怎么做啊?谢谢大家啦!
佳答案
在“protocol”对话框里有个"limits"选项min值和max值修改下