
adccommunitymod (AutomationDirect) asked a question.
Created Date: September 10,2007
Created By: Darksabre
**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****
I'm having a little problem writing some modbus commands to a Delta VFD-B drive. I'm using a DL06 plc and the MRX and MWX commands to modbus it. As far as I can tell, you can read/write to the parameters starting at parameter 0000 by setting up the MRX/MWX block like this: Port: K2 Slave Add: K1 Function Code: 03 or 16 Start Slave Memory Address: 40001 Number of Elem: 20 Modbus Data type: 584/984 Mode Exception Buffer: V400 If I have it setup like this, I can successfully read or write to parameters 0000 through 0019 (20 elements). This is great...if I only want to access those parameters. Unfortunately there are a lot more parameters (all the way up to 0900) that I need to access. I can change my start slave address anywhere from 40001 to 40011, but if I set it beyond this, it wont read/write any values. Also, it only lets me read/write up to 20 elements. Again, anything past this and it fails to read/write values. Does this sound familiar to anyone? Any suggestions or brainstorming would be much appreciated!
Created Date: September 10,2007
Created by: milldrone
Darksabre,
Here is a program I wrote to test how many registers I could write to with the mwx instruction. It worked when I tried it over a year ago.
PLC 06
// Rung 1
// Address 0
#BEGIN COMMENT
" This is an example of a mwx comm to move all the registers from V1200 to V7377 to "
"another plc V1200 to V7377. This could be a 06 or an 05 as they both have the same "
"memory range. Note the last MWX has only 75 registers in it. All the other MWX's have "
"125 registers ( the 125 number is all the software would allow me to transfer in one "
"instruction). "
" "
" This rung is just for a visual display of comm progress via output leds "
#END
STR C0
OR C1
OUT Y0
// Rung 2
// Address 3
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C2
OR C3
OUT Y1
// Rung 3
// Address 6
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C4
OR C5
OUT Y2
// Rung 4
// Address 9
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C6
OR C7
OUT Y3
// Rung 5
// Address 12
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C10
OR C11
OUT Y4
// Rung 6
// Address 15
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C12
OR C13
OUT Y5
// Rung 7
// Address 18
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C14
OR C15
OUT Y6
// Rung 8
// Address 21
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C16
OR C17
OUT Y7
// Rung 9
// Address 24
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C20
OR C21
OR C40
OUT Y10
// Rung 10
// Address 28
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C22
OR C23
OR C41
OUT Y11
// Rung 11
// Address 32
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C24
OR C25
OR C42
OUT Y12
// Rung 12
// Address 36
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C26
OR C27
OR C43
OUT Y13
// Rung 13
// Address 40
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C30
OR C31
OR C44
OUT Y14
// Rung 14
// Address 44
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C32
OR C33
OR C45
OUT Y15
// Rung 15
// Address 48
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C34
OR C35
OR C46
OUT Y16
// Rung 16
// Address 52
#BEGIN COMMENT
" This rung is just for a visual display of comm progress via output leds "
#END
STR C36
OR C37
OR C47
OUT Y17
// Rung 17
// Address 56
#BEGIN COMMENT
" this is a shift register triggered by the comm port being busy to shift to the next bit "
#END
STRN SP1
STR SP116
STRN SP1
SR C0 C47
// Rung 18
// Address 61
#BEGIN COMMENT
" this is to reset the shift register and to limit the number of shifts so that they end with bit "
"C32. Otherwise the register would hang because the comm port wouldnt be busy. As the "
"last bit used for an MWX box is C31 "
#END
STR SP0
OR C32
SET C0
RST C47
// Rung 19
// Address 65
STRN SP116
AND C0
MWX K0 K0 K2 K2 K16 K40641 V1200 K125 K0 V400
// Rung 20
// Address 73
STRN SP116
AND C1
MWX K0 K0 K2 K2 K16 K40766 V1375 K125 K0 V400
// Rung 21
// Address 81
STRN SP116
AND C2
MWX K0 K0 K2 K2 K16 K40891 V1572 K125 K0 V400
// Rung 22
// Address 89
STRN SP116
AND C3
MWX K0 K0 K2 K2 K16 K41016 V1767 K125 K0 V400
// Rung 23
// Address 97
STRN SP116
AND C4
MWX K0 K0 K2 K2 K16 K41141 V2164 K125 K0 V400
// Rung 24
// Address 105
STRN SP116
AND C5
MWX K0 K0 K2 K2 K16 K41266 V2361 K125 K0 V400
// Rung 25
// Address 113
STRN SP116
AND C6
MWX K0 K0 K2 K2 K16 K41391 V2556 K125 K0 V400
// Rung 26
// Address 121
STRN SP116
AND C7
MWX K0 K0 K2 K2 K16 K41516 V2753 K125 K0 V400
// Rung 27
// Address 129
STRN SP116
AND C10
MWX K0 K0 K2 K2 K16 K41641 V3150 K125 K0 V400
// Rung 28
// Address 137
STRN SP116
AND C11
MWX K0 K0 K2 K2 K16 K41766 V3345 K125 K0 V400
// Rung 29
// Address 145
STRN SP116
AND C12
MWX K0 K0 K2 K2 K16 K41891 V3542 K125 K0 V400
// Rung 30
// Address 153
STRN SP116
AND C13
MWX K0 K0 K2 K2 K16 K42016 V3737 K125 K0 V400
// Rung 31
// Address 161
STRN SP116
AND C14
MWX K0 K0 K2 K2 K16 K42141 V4131 K125 K0 V400
// Rung 32
// Address 169
STRN SP116
AND C15
MWX K0 K0 K2 K2 K16 K42266 V4331 K125 K0 V400
// Rung 33
// Address 177
STRN SP116
AND C16
MWX K0 K0 K2 K2 K16 K42391 V4526 K125 K0 V400
// Rung 34
// Address 185
STRN SP116
AND C17
MWX K0 K0 K2 K2 K16 K42516 V4723 K125 K0 V400
// Rung 35
// Address 193
STRN SP116
AND C20
MWX K0 K0 K2 K2 K16 K42641 V5120 K125 K0 V400
// Rung 36
// Address 201
STRN SP116
AND C21
MWX K0 K0 K2 K2 K16 K42766 V5315 K125 K0 V400
// Rung 37
// Address 209
STRN SP116
AND C22
MWX K0 K0 K2 K2 K16 K42891 V5512 K125 K0 V400
// Rung 38
// Address 217
STRN SP116
AND C23
MWX K0 K0 K2 K2 K16 K43016 V5707 K125 K0 V400
// Rung 39
// Address 225
STRN SP116
AND C24
MWX K0 K0 K2 K2 K16 K43141 V6104 K125 K0 V400
// Rung 40
// Address 233
STRN SP116
AND C25
MWX K0 K0 K2 K2 K16 K43266 V6301 K125 K0 V400
// Rung 41
// Address 241
STRN SP116
AND C26
MWX K0 K0 K2 K2 K16 K43391 V6476 K125 K0 V400
// Rung 42
// Address 249
STRN SP116
AND C27
MWX K0 K0 K2 K2 K16 K43516 V6673 K125 K0 V400
// Rung 43
// Address 257
STRN SP116
AND C30
MWX K0 K0 K2 K2 K16 K43641 V7070 K125 K0 V400
// Rung 44
// Address 265
STRN SP116
AND C31
MWX K0 K0 K2 K2 K16 K43766 V7265 K75 K0 V400
// Rung 45
// Address 273
END
Created Date: September 13,2007
Created by: Darksabre
Thanks for the program. I was able to figure out what I was doing wrong. Their addressing scheme isn't continuous. You have to convert the desired parameter to hex (ex 05-25 is 05H and 19H), then you put it together and convert to decimal (0519H = 1305 in decimal). Then you take that number and add it to 40001 to get your modbus address. Whew.
Created Date: September 10,2007
Created by: Darksabre
I'm having a little problem writing some modbus commands to a Delta VFD-B drive. I'm using a DL06 plc and the MRX and MWX commands to modbus it. As far as I can tell, you can read/write to the parameters starting at parameter 0000 by setting up the MRX/MWX block like this:
Port: K2
Slave Add: K1
Function Code: 03 or 16
Start Slave Memory Address: 40001
Number of Elem: 20
Modbus Data type: 584/984 Mode
Exception Buffer: V400
If I have it setup like this, I can successfully read or write to parameters 0000 through 0019 (20 elements). This is great...if I only want to access those parameters. Unfortunately there are a lot more parameters (all the way up to 0900) that I need to access. I can change my start slave address anywhere from 40001 to 40011, but if I set it beyond this, it wont read/write any values. Also, it only lets me read/write up to 20 elements. Again, anything past this and it fails to read/write values.
Does this sound familiar to anyone? Any suggestions or brainstorming would be much appreciated!