PL7 or Unity CPU?
On PL7 CPU's you maybe not need extension memory, it depends of program size, but small programs can downlades without extension.
On Unity CPU's you almost allways need extension memory to CPU, because program takes more memory than on PL7 processors. You maybe can configure hardware and symbols, but for programs there is no space after this much.
(on Unity default setting is that all is download to cpu as on offline project. So you can even upload program from CPU and all variable names, comments ans so on are uploaded to computer from CPU. So if you don't have original program on computer, you can load it from cpu, and you don't loose anything.
On PL7 only network header comments are dowloaded to CPU , and if you don't have original program, well, you can upload project from CPU, but it is hard to understand.
For PL7 there is two types of memory card, cards with only space for program and cards which are divided to two parts, one part can used for program and other for data. Both card types came with different sizes and prices.
(there is also flash memory, but with it you can't do any online changes)
On Unity CPU you can have card and from cpu settings divide it for data and program or only for program. So no need to buy different cards if on one project you need program memory and on other both.
If you don't do recipies, save ascii text or something like that on CPU side, you probably only need card for work memory extension, not for data.
p.s M340 cpu have allways memory card with it, for older P57 models you have to buy it separately and it isn't low priced