Unity AVG block
The key to this block is the EN (Enable) line. Every time this block executes it will read the input value and put it into the internal array, and then calculate the average. Once it gets the programmed number of samples the oldest value is thrown away.
If you put logic on the enable line to turn it on for one scan every two seconds, and set the number of samples to 30 you'll get the output you are looking for. You could use the SAMPLETM block to get a pulse once each time period you require.
There are a few things to watch for.
First, according to the documentation, the block must be called on the first PLC scan as it does some initialization. I've never seen this to be a problem, but it is called out in the documents. Second, the block can only do 50 samples, so you can't quite get a minute worth of data averaging once per second. There are ways to get bigger samples by combining two averaging blocks, but at that point it's probably just easier to roll your own. Third, the average will change each time the block is executed. In the example above the average would be updated every two seconds and would represent the previous minute worth of data.
Another possible block would be the AVGMV_K. This can do far more than 50 samples because it works a bit different. It takes the number of samples requested, and subtracts 1/(#samples)*average from the average before adding 1/(#samples)*current_value to the average. If you have a value with noise around an average point it works pretty well. If you have a step change in value it is a little less accurate until it has performed the number of samples for the new value.