以CP341为例的modbus免狗主站功能块教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

以CP341为例的modbus免狗主站功能块教程通信波(QQ:2532622889)一:硬件接线1、确认是从CP341卡的DB15接口4(-)脚及11(+)脚引出两根信号线,并注意正负极;2、在485线型网络两端(信号线路相距最远的两个通信端口上)需并联终端电阻(250欧~330欧)。根据传输线理论,终端电阻可以吸收网络上的反射波,有效地增强信号强度;3、如果CP卡有发送时则TX灯会闪亮,如果CP卡有接收时则RX灯会闪亮;二:ModM_34x示例程序移植至当前STEP7工程项目将上图中所示的FB块,FC块,DB块拷入工程项目中,VAT表可以不拷贝,并在OB1中调用FC171块,注意上图的8个DB块是与示例程序FC171中FC190管脚上指定的DB块一一对应的,各位可以根据需要自已定义或修改DB块序号及DB块存储空间的大小,但一定要注意开辟的DB块的大小要符合通信要求:例如想要读模拟量40100的值,那么DB块至少要开辟100个字的大小,因为DBxxx.DBW0对应于40001、DBxxx.DBW2对应于40002、DBxxx.DBW4对应于40003、……、DBxxx.DBW198对应于40100;例如想要读数字量00100的值,那么DB块至少要开辟100个位的大小,因为DBxxx.DBx0.0对应于00001、DBxxx.DBx0.1对应于00002、……、DBxxx.DBx1.0对应于00009、……、DBxxx.DBx12.3对应于00100;三:程序移植后当前工程项目涉及到的STEP7硬件组态1、配置CPU硬件组态中的ClockMemory,其中指定的MB序号要与FC171中FB171管脚上的CLOCK_CPU一致;2、配置CP卡的地址,使其与FC171中FB171管脚上的LADDR1、LADDR2一致;3、双击CP卡弹出下图对话框,若Parameters按钮灰化,则需安装CP卡驱动程序;4、双击上图Parameters,弹出下图对话框,将Protocol配置为ASCII;5、双击上图Protocol,弹出下图对话框,按实际要求设置通信基本参数;6、点击上图Transmission翻页,弹出下图对话框,不作改动;7、点击上图ReceivingData翻页,弹出下图对话框,不作改动;8、点击上图interface翻页,弹出下图对话框,配置成下图所示;四:程序移植后当前工程项目涉及到的STEP7软件编程1、下图所示的程序中,当鼠标停留在FB171或FC190相应管脚上时,会有中文提示弹出,FB171为主站功能块,其中DB171是其背景数据块,FC190为主站命令配置块,主站所有实施的工作内容由一系列配置好参数的FC190来实施;2、FB171管脚说明:License1、License2:H系统或软冗余系统,分别填上对应于这两个CPU的授权号;CLOCK_CPU:与CPU的硬件组态中CLOCK的设定需一致;LADDR1、LADDR2:CP卡的地址,在一对一通信时值设为一致,二对一Y型CP卡冗余通信时值分别为两块CP卡的地址;CP1_Type、CP2_Type:分别对应于上述LADDR1、LADDR2地址的CP卡类型,1为CP340,2为CP341;CP_Err_TmSet:二对一Y型CP卡冗余通信时的切换条件,为时间设定(秒),默认值30,表示当前CP卡若持续30秒不能接收到任何从站的信息,则切换至另一块CP卡;DBInstNo:FB171所对应的背景数据块号;PollNum:轮询命令的条数,也就是执行轮询设置的FC190的数量,在示例程序中FC190的pollNO管脚值从1~8共有8条,因此FB171的PollNum管脚也设为8;PollTime:执行轮询时当从站异常时的最大等待时间(单位为CPU扫描周期数);WrtNum:随机操作命令的条数,也就是执行随机操作设置的FC190的数量,在示例程序中FC190的WrtNO管脚值从1~8共有8条,因此FB171的WrtNum管脚也设为8;WrtTime:执行随机操作时当从站异常时的最大等待时间(单位为CPU扫描周期数);RcvDBB_Num:系统内定值为92,不得修改;SndDBB_Num:系统内定值为352,不得修改;DB0xxxxI:管脚需空置;DB0_LenI:管脚需空置;DB1xxxxI:管脚需空置;DB1_LenI:管脚需空置;DB3xxxxI:管脚需空置;DB3_LenI:管脚需空置;DB4xxxxI:管脚需空置;DB4_LenI:管脚需空置;ComType:管脚需空置;SndAddrI:管脚需空置;SndFnCodeI:管脚需空置;SndBegI:管脚需空置;SndNumI:管脚需空置;DB_Rcv:与FB171背景数据块有关,若背景数据块为DB171,则设为DB171.Rcv;DB_Snd:与FB171背景数据块有关,若背景数据块为DB171,则设为DB171.Snd;3、FC190管脚说明:DBInstNO:指定FB171的背景数据块号,示例程序中背景数据块为DB171,因此设为171;PollNO:轮询命令的序号,当与FB171的不断循环递增的当前序号相同时,本条命令被发出;WrtNO:随机操作命令的序号,当FB171的背景数据块中对应的随机操作位被置1时,本条命令被发出,随机操作命令的序号与FB171的背景数据块中对应的随机操作位是一一对应的关系,随机操作命令优先级高于轮询操作;DataDBNum:此条命令所对应的数据存取DB块;SndAddr:此条命令所对应的从站地址;SndFnCode:此条命令所对应的功能码;SndBeg:此条命令所对应的起始地址(偏移量);SndNum:此条命令所对应的需操作的数据量;4、示例程序中8条FC190轮循命令的解释:轮循命令时功能码为4,读取一个或多个输入寄存器:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=1对应)等于1时,读取11#从站30001~30040计40个输入寄存器,读取到的数据放入到DB13中,对应于DB13.DBW0~DB13.DBW78;轮循命令时功能码为3,读取一个或多个保持寄存器:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=2对应)等于2时,读取11#从站40001~40040计40个保持寄存器,读取到的数据放入到DB14中,对应于DB14.DBW0~DB14.DBW78;轮循命令时功能码为2,读取一个或多个输入状态:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=3对应)等于3时,读取11#从站10001~10040计40个输入状态,读取到的数据放入到DB11中,对应于DB11.DBX0.0~DB11.DBX4.7;轮循命令时功能码为1,读取一个或多个线圈状态:--》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=4对应)等于4时,读取11#从站00001~00040计40个线圈状态,读取到的数据放入到DB10中,对应于DB10.DBX0.0~DB10.DBX4.7;轮循命令时功能码为16,写一个或多个保持寄存器:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=5对应)等于5时,将DB24中DB24.DBW120~DB24.DBW158计20个字的数据写至12#从站保持寄存器40061~40080;轮循命令时功能码为15,写一个或多个线圈:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=6对应)等于6时,将DB20中DB20.DBX7.4~DB20.DBX9.7计20个位的数据写至12#从站的线圈00061~00080;轮循命令时功能码为6,写一个保持寄存器:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=7对应)等于7时,将DB24中DB24.DBW120中的数据写至12#从站保持寄存器40061,SndFnCode为6时SndNum的值可为任意;轮循命令时功能码为5,写一个线圈:-》当FB171的轮询值管脚PollVal(与FC190的管脚PollNO=8对应)等于8时,将DB20中DB20.DBX7.4的数据写至12#从站的线圈00061,SndFnCode为5时SndNum的值可为任意;5、示例程序中8条FC190随机操作命令的解释:随机操作时功能码为4,读取一个或多个输入寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX1404.0(与FC190的管脚WrtNO=1对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取12#从站30001~30040计40个输入寄存器,并自动将DB171.DBX1404.0的值复位为0,读取到的数据放入到DB23中,对应于DB23.DBW0~DB23.DBW78,读取完毕恢复至轮循模式;随机操作时功能码为3,读取一个或多个保持寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX1404.1(与FC190的管脚WrtNO=2对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取12#从站40001~40040计40个保持寄存器,并自动将DB171.DBX1404.1的值复位为0,读取到的数据放入到DB24中,对应于DB24.DBW0~DB24.DBW78,读取完毕恢复至轮循模式;随机操作时功能码为2,读取一个或多个输入状态:--》当(某一条件)将FB171的背景数据块中DB171.DBX1404.2(与FC190的管脚WrtNO=3对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取12#从站10001~10040计40个输入状态,并自动将DB171.DBX1404.2的值复位为0,读取到的数据放入到DB21中,对应于DB21.DBX0.0~DB21.DBX4.7,读取完毕恢复至轮循模式;随机操作时功能码为1,读取一个或多个线圈状态:--》当(某一条件)将FB171的背景数据块中DB171.DBX1404.3(与FC190的管脚WrtNO=4对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令读取12#从站00001~00040计40个线圈状态,并自动将DB171.DBX1404.3的值复位为0,读取到的数据放入到DB20中,对应于DB20.DBX0.0~DB20.DBX4.7,读取完毕恢复至轮循模式;随机操作时功能码为16,写一个或多个保持寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX1404.4(与FC190的管脚WrtNO=5对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令将DB14中DB14.DBW120~DB14.DBW158计20个字的数据写至11#从站保持寄存器40061~40080,并自动将DB171.DBX1404.4的值复位为0,操作完毕恢复至轮循模式;随机操作时功能码为15,写一个或多个线圈:--》当(某一条件)将FB171的背景数据块中DB171.DBX1404.5(与FC190的管脚WrtNO=6对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令将DB10中DB10.DBX7.4~DB10.DBX9.7计20个位的数据写至11#从站的线圈00061~00080,并自动将DB171.DBX1404.5的值复位为0,操作完毕恢复至轮循模式;随机操作时功能码为6,写一个保持寄存器:--》当(某一条件)将FB171的背景数据块中DB171.DBX1404.6(与FC190的管脚WrtNO=7对应)的值置1时,立刻从轮循模式切换至随机操作模式,发出命令将DB14中DB14.DBW120中的数据写至11#从站保持寄存器40061,并自动将DB171.DBX1404.6的值复位为0,操作完毕恢复至轮循模式,SndFnCode为6时SndNum的值可为任意;随机操作时功能码为5,写一个线圈:--》当

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功