In most cases, yes you can, especially if you're using a protocol the PLC supports natively.
I did have one project where I had to run a Festo CoDeSys-based PLC as a Modbus/TCP slave via its internal Ethernet port. It's possible, but the support isn't in firmware, it's a little software module Festo gives you to run with your application code, so in that case it talks only in run mode (to the Modbus master anyway). Takes a hell of a long time to boot too. Like 10 seconds or so after the application of power before it was responsive to Modbus polls.
I will modify my question, does the PLC gives the Current values of the Special Function Blocks, when read over Modbus in Stop Mode.
For example, if i m using a Up counter, and the count has reached up to 10, and now if I stop my PLC and restart it, the count will start from 0. Now in this case, during stop mode, if I will read the counter over Modbus, what should I get 0 or 10.
good point. I was not thinking of such things, because I have never
run across them. I don't recall if the prosoft modules continue to
function if the PLC is not in run.
If the PLC is using a communications processor (cp) for Modbus, you can not read data in the STOP mode; the cp is not running, or the data provided to it is no longer 'live'. With a Siemens Step7 plc using Profibus or Ethernet, all input modules that do not require a function block are still 'live' and available to something like a Wonderware I/O or Data Access Server (DAS). The Modbus module is served by read and write function blocks that do not run if the cpu is not in RUN.
I monitor a watchdog timer to verify that the PLC is in RUN mode, but Wonderware can continue to record the data from an analog input with the PLC in the STOP mode.