You do not need to have a real plc to test your Citect project.
The first thing what you need to do is go to Citect Explorer / Communications and run the Express I/O device setup. At one point Citect wil ask you what kind of I/O-device you have. You have 3 options. External I/O device (a real plc), memory I/O device and disk I/O device. Select disk I/O device. Now you are able to simulate a plc. Your simulated data is stored on your hard-disk. A memory I/O device uses the same concept but the data is stored in the RAM-memory, so you will lose all simulated data after you have shut down your computer.
The second thing what you need to do is create simulated I/O in your Citect project. There a basicly two kinds of I/O; digital and analog.
Digital I/O
-----------
Example; in your project you already have a graphical symbol defined for a tag with the name "motor". The ON-symbol is a green motor and the OFF-symbol is a blue motor.
Now you must simulate the two possible states of this motor; ON and OFF. Push the 'symbol set'-toolbutton. There is a black and a red circel as ON and OFF symbol. This is just fine for testing. In the box 'Appearance' you need to insert the tag 'motor' (On symbol when). Then you go to the box 'Input' and type "toggle(motor)". Toggle() is a function that will change the state (ON or OFF) of your tag everytime that you activate this function. One time it works like a SET-function, the next time it will work like a RESET-function. The toggle() is activated on the UP-command. This means that you need to click on the graphical symbol with your mouse-cursor. Only when you lift your finger up, the toggle() will be activated. Now your simulated I/O works like a light-switch. If you want it to work like a push-button you also need to make a toggle() as a DOWN-command. Go to Run-time and you will see...
Analog I/O
----------
Example: you have a tag named 'level' between 0 and 1200 and you already have a graphical symbol for this tag.
To simulate analog I/O, I use the 'button'-toolbutton. In the box 'appearance' you can type the text "level". Goto the box 'Input'. On the left there a two possibilities; Touch and Keyboard Commands. Choose 'Keyboard commands'. On the leftside there is the 'Key sequence'. Here you type the text "####enter". In the middel you will see a white box now renamed into "'####enter' command". Here you must type the text "level=Arg1;".
If you also want to see the value of your simulated analog I/O you need to use the number-toolbutton. The numeric expression must be the tag 'level'.
In Run-time you must position your cursor over the simulated I/O-button. You can type a 4-digit number. The tag will only change after you push enter on your keyboard.
May the force be with you.